Asterisk AI语音智能体 是 AI Skill Hub 本期精选AI工具之一。已获得 1.0k 颗 GitHub Star,综合评分 8.2 分,整体质量较高。我们强烈推荐将其纳入你的 AI 工具库,帮助提升工作效率。
Asterisk AI语音智能体 是一款基于 Python 开发的开源工具,专注于 语音AI、Asterisk、PBX 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
Asterisk AI语音智能体 是一款基于 Python 开发的开源工具,专注于 语音AI、Asterisk、PBX 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。
# 方式一:pip 安装(推荐)
pip install ava-ai-voice-agent-for-asterisk
# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install ava-ai-voice-agent-for-asterisk
# 方式三:从源码安装(获取最新功能)
git clone https://github.com/hkjarral/AVA-AI-Voice-Agent-for-Asterisk
cd AVA-AI-Voice-Agent-for-Asterisk
pip install -e .
# 验证安装
python -c "import ava_ai_voice_agent_for_asterisk; print('安装成功')"
# 命令行使用
ava-ai-voice-agent-for-asterisk --help
# 基本用法
ava-ai-voice-agent-for-asterisk input_file -o output_file
# Python 代码中调用
import ava_ai_voice_agent_for_asterisk
# 示例
result = ava_ai_voice_agent_for_asterisk.process("input")
print(result)
# ava-ai-voice-agent-for-asterisk 配置文件示例(config.yml) app: name: "ava-ai-voice-agent-for-asterisk" debug: false log_level: "INFO" # 运行时指定配置文件 ava-ai-voice-agent-for-asterisk --config config.yml # 或通过环境变量配置 export AVA_AI_VOICE_AGENT_FOR_ASTERISK_API_KEY="your-key" export AVA_AI_VOICE_AGENT_FOR_ASTERISK_OUTPUT_DIR="./output"
<picture> <source media="(prefers-color-scheme: dark)" srcset="assets/banner_dark_mode.png?v=9"> <source media="(prefers-color-scheme: light)" srcset="assets/banner_light_mode.png?v=9"> <img alt="Asterisk AI Voice Agent" src="assets/banner_light_mode.png?v=9" width="100%"> </picture>
<br> <a href="https://www.producthunt.com/products/ava-ai-voice-agent-for-asterisk?embed=true&utm_source=badge-featured&utm_medium=badge&utm_campaign=badge-ava-ai-voice-agent-for-asterisk" target="_blank" rel="noopener noreferrer"><img alt="AVA - AI Voice Agent for Asterisk - Open-source AI voice agent for any phone system | Product Hunt" width="250" height="54" src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1120145&theme=light&t=1775845744279"></a>
The most powerful, flexible open-source AI voice agent for Asterisk/FreePBX. Featuring a modular pipeline architecture that lets you mix and match STT, LLM, and TTS providers, plus 6 production-ready golden baselines validated for enterprise deployment.
Managing multiple PBXs or customer installations? Explore AVA Operator — the commercial multi-installation management layer built around AVA Core, currently available as an early-access preview. AVA Core remains MIT-licensed, free, and fully functional on its own.
Quick Start • Features • Roadmap • Demo • Docs • Community
</div>
---
<details open> <summary><b>v7.6.2 — Gemini 3.8 Live, Microsoft bookings, and clearer call analytics</b></summary>
v7.6.2 is an in-place feature and reliability release. It does not migrate databases, reassign Agents, or change the selected provider, transport, Audio Profile, or shipped Google Live model defaults.
- Gemini 3.8 Live is opt-in on Developer API and Vertex AI — model-aware regions, Audio Only output, ID-matched tool responses, and full-duplex interruption handling. An unanswered attended transfer returns the caller to AI. Attached Vertex 3.8/2.5 calls validate the changed paths; broader production and Developer API qualification remains outstanding (#674). - Microsoft Calendar supports caller-confirmed invitations and same-call booking changes — check an exact requested interval, reconcile creation retries, and reschedule or cancel the tracked booking with consent. Invitations and hours/horizon enforcement remain opt-in; saved OAuth caches, calendar IDs, and Agent prompts are preserved. Later-call changes require staff; creation does not prove invitation delivery or acceptance (#686). - Call History filters now agree with statistics and exports — multi-outcome Only / Hide, tool usage, duration, transcript, and metadata filters apply consistently, with stale responses ignored (#683, contributed by @Rea-PC08). - Admin UI is easier to read and navigate — aligned numeric displays, accessible icon controls, and shared empty states (#681, #682, #684, contributed by @arnavp27). - The ignored farewell delay is deprecated — existing YAML/API values remain compatible, but misleading controls are removed. Terminal hangup still drains caller-facing audio rather than sleeping for a fixed delay (#678).
See the v7.6.2 changelog, migration notes, and validation matrix.
</details>
<details> <summary><b>v7.6.1 — Fish Audio streaming and safer transfer/calendar operations</b></summary>
v7.6.1 is an in-place feature, reliability, and security release. It does not migrate databases, reassign Agents, or change the selected provider, transport, or Audio Profile.
- Fish Audio joins the modular TTS catalog — configure provider-scoped credentials and stream PCM through either the supported HTTP path or the new realtime WebSocket path. WebSocket mode can consume LLM text deltas directly for lower first-audio latency (#653, #654, contributed by @Rea-PC08). - Calendar tools preserve useful structured results — safe event, event-detail, availability, and truncation metadata now reaches every voice provider instead of being discarded by the shared sanitizer (#663). - Google credential status matches effective authentication — unresolved environment references no longer appear configured, legacy Vertex credential files are recognized, and new uploads keep the saved provider path aligned (#664). - Attended transfers fail safer — FreePBX pickup channels inherit transfer ownership before the original ringing leg disappears, while a deferred transfer that cannot drain its caller-facing audio is cancelled and returned to the active AI voice (#665, #666). - msgpack is updated to 1.2.1 — resolving the high-severity Unpacker denial-of-service and out-of-bounds read advisory (#670).
See the v7.6.1 changelog, migration notes, and validation matrix.
</details>
<details> <summary><b>v7.6.0 — Asterisk Media WebSocket, call metadata, and safer troubleshooting</b></summary>
v7.6.0 adds a third, opt-in media transport and expands call diagnostics while keeping existing AudioSocket, ExternalMedia RTP, Agent, and provider selections unchanged by default.
- Asterisk Media WebSocket is available as an opt-in transport — supported Asterisk releases can open an authenticated, per-call media WebSocket to AVA, with Admin UI setup, CLI/preflight validation, codec conversion, lifecycle cleanup, and explicit qualification boundaries. Only OpenAI Realtime with ulaw on Asterisk 22.10.1/FreePBX 17 has a live qualified smoke; other combinations remain unqualified until tested (#644). - Selected pre-call data can become bounded call metadata — HTTP lookup fields are opt-in, scalar, and non-authoritative. An Agent may correct only explicitly allowed fields during the active call, without changing caller identity, routing, consent/DNC, transfers, disposition, or external systems (#632). - Call troubleshooting now produces privacy-safe support packages — Call History captures the effective provider, pipeline, Audio Profile, transport, codec, VAD, streaming, and tool settings for new calls, then combines that snapshot with correlated sanitized logs and tool lifecycle evidence. General diagnostics exports are bounded and the legacy export endpoint now uses the same safe path (#657). - Admin UI reliability and configuration handling are hardened — slow Docker log reads no longer block the API event loop, overlapping Logs polls are prevented, and non-finite YAML/JavaScript numbers are rejected with exact paths before persistence (#656).
See the v7.6.0 changelog, migration notes, and validation matrix.
</details>
<details> <summary><b>v7.5.6 — Safer outbound context, Agent hangup policies, and configured summary LLMs</b></summary>
v7.5.6 is an in-place feature and reliability release. It does not migrate databases, reassign Agents, or change Audio Profiles.
- Outbound lead context is delivered or the call fails closed — ARI origination now uses its documented variables object, restoring routing, identity, AudioSocket, AMD/consent, and campaign metadata. Nonempty lead custom_vars is bounded, confirmed before provider startup, recovered after an engine restart, and redacted from diagnostics (#613). - Hangup intent markers can be scoped per Agent — each Agent can inherit, extend, or replace the global end-of-call phrases. New calls capture an immutable policy, and Full Local negotiates call-scoped support so older servers and malformed overrides fail closed (#619). - Post-call summaries can use configured modular LLMs — each webhook can select an enabled LLM provider and configure its model readiness, timeout, word limit, and prompt. Explicit selections never fall back to another provider; summary failures leave {summary} empty while webhook delivery continues. Existing webhooks retain the legacy OpenAI behavior until configured (#618). - Summary prompts stay isolated from the live Agent persona — provider adapters receive the webhook's summary instructions as authoritative job context, and the default Groq LLM moves to openai/gpt-oss-120b.
See the v7.5.6 changelog, migration notes, and validation matrix.
</details>
<details> <summary><b>v7.5.5 — Sidebar collapse, post-call webhook variables, and configurable extension availability</b></summary>
v7.5.5 is an in-place feature release. It does not migrate databases, reassign Agents, or change Audio Profiles.
- Collapsible Admin UI sidebar — the left navigation can collapse to an icon-only rail, with hover tooltips and a persisted preference, reclaiming space on smaller displays (#596). - Pre-call variables now flow into post-call webhooks — each pre-call output variable is exposed as its own placeholder in webhook payload templates, matching prompt and in-call tool behavior (#608). - Configurable extension availability mapping — check_extension_status now classifies multiple ARI device states per extension (including operator-configured custom states for DND/away) via a configurable free/busy/unavailable mapping, with a fail-closed default and new Admin UI editors for per-extension and global state mapping (#577). - check_extension_status reliability fixes — availability fields survive JSON sanitization across all tool adapters, live-transfer channel activity is cross-checked against stale device state, and an unmapped device_state_id can no longer bypass restrict_to_configured_extensions (#577).
See the v7.5.5 changelog, migration notes, and validation matrix.
</details>
<details> <summary><b>v7.5.4 — Privacy-safe diagnostics and provider/update hardening</b></summary>
v7.5.4 is an in-place reliability and privacy release. It does not migrate databases, reassign Agents, or change Audio Profiles.
- Diagnostics are truly opt-in — disabled playback taps and full-call RCA capture perform no per-call conversion, locking, file creation, write, or cleanup deletion. Enabled paths reject symlinks, unsafe writable ancestors, and foreign ownership before audio is written. - ARI silent failures recover promptly — 10-second WebSocket ping and timeout defaults make readiness fail in about 20 seconds before normal reconnect logic takes over. - Deepgram telephony choices are coherent — Flux and Nova receive the right language fields, the UI exposes the commonly used telephony models and seven end-to-end Aura languages, and incompatible language/model/voice combinations fail before a remote session opens. - Docker status is accurate again — Docker SDK 7.1 restores Admin UI socket compatibility and detection follows rootful, rootless, TCP, and named-pipe endpoint configuration. - Updates preserve optional Local AI state — absent and unselected Local AI stays absent, while an installed stopped service can be refreshed without being started, including rollback. - Call History privacy is operator-controlled — strict, routing-visible, and explicit off modes make the redaction boundary visible without rewriting historical records (#589).
See the v7.5.4 changelog, migration notes, and validation matrix.
</details>
<details> <summary><b>v7.5.3 — One-click audio recovery and safer transfers</b></summary>
v7.5.3 focuses on getting an installation back to a known-good configuration without undoing the operator's unrelated work.
- Restore audio defaults in context — Providers, Audio Profiles, and modular Pipelines each expose their own restore action in the Admin UI. Provider restores keep credentials, models, voices, prompts, enabled state, and provider identity; profile restores keep Agent assignments; pipeline restores keep STT/LLM/TTS provider selections and non-audio options. - Backend-owned baselines — restore values come from the same canonical registry used by validation, including the supported OpenAI Realtime GA linear16/24 kHz contract. Environment-owned overrides remain visible and are never silently rewritten. - Explicit apply guidance — each restore reports whether no action, a hot reload, or an AI Engine restart is needed before new calls use the baseline. - Fail-closed dialplan transfers — extension, queue, and ring-group transfers validate known-missing targets, require a confirmed ARI handoff, and preserve ownership safely when Asterisk's response is indeterminate. FreePBX queues use the standard ext-queues context by default (#577). - Query what the agent actually did — completed in-call tools now expose a stable tool_call_id, normalized success/failure status, action, and reconcilable target_id in Call History and its API without mixing telemetry into the transcript (#587).
These recovery actions are intentionally narrow: they do not provide a global factory reset and do not change secrets or Agent routing.
See the v7.5.3 changelog for implementation and compatibility details.
</details>
<details> <summary><b>v7.5.2 — Opt-in HD Voice over 16 kHz AudioSocket</b></summary>
v7.5.2 adds a call-scoped wideband path without changing existing Agent profiles or the established 8 kHz compatibility defaults.
- Native 16 kHz AudioSocket — assign wideband_pcm_16k to an Agent to use Asterisk slin16 and rate-specific AudioSocket framing in both directions. - Provider and pipeline alignment — Grok, Google Live, Deepgram, OpenAI, ElevenLabs, Local Hybrid, and Full Local retain truthful per-call media contracts, including retries, tool continuations, interruption, and cleanup. - Fail-closed compatibility — wideband requires Asterisk 20.17+, 21.12+, 22.7+, or 23.1+ and a genuinely wideband endpoint or SIP trunk path such as G.722. ExternalMedia RTP and PSTN/G.711 calls remain on an 8 kHz profile. - Simple rollback — switch the Agent back to telephony_ulaw_8k or telephony_enhanced_8k; no global transport or provider-default change is required.
See the v7.5.2 changelog, v7.5.2 migration notes, and v7.5.2 validation matrix.
</details>
<details> <summary><b>v7.5.1 — Safer Admin apply and complete call history</b></summary>
The v7.5.1 hotfix focuses on recovery and observability without changing audio profiles, provider transport, or fresh-install defaults.
- Recoverable Apply Changes — the Admin UI prepares its updater runner before touching a live service and restores the previous image and container environment if a Compose replacement fails or does not become healthy. - Complete realtime transcripts — OpenAI and Grok keep assistant transcript state separate from interleaved caller-final events, preventing clipped prefixes in Call History and post-call consumers. - Apply instead of unnecessary restart — tool-only edits advertise and use hot reload for new calls. Provider, environment, and process-level changes remain on the restart/recreate path.
No database migration or audio-profile reassignment is required. Existing stored transcripts are not rewritten.
See the v7.5.1 changelog and v7.5.1 migration notes.
</details>
<details> <summary><b>v7.5.0 — Enhanced telephony audio and VICIdial integration 🎧</b></summary>
v7.5.0 improves narrowband call audio without changing the established 8 kHz Asterisk wire contract, and adds a production-oriented VICIdial Remote Agent integration.
- Opt-in enhanced telephony audio — assign telephony_enhanced_8k to an Agent to use stateful band-limited downsampling for cleaner G.711 playback. Existing profiles keep their compatibility behavior, and switching back to telephony_ulaw_8k is the immediate rollback. - Consistent provider and pipeline policy — hosted providers and modular TTS pipelines inherit the Agent's Audio Profile by default, expose narrow troubleshooting overrides, and validate incompatible encoding, rate, resampler, overlap, and segmentation combinations before apply. - Safer interruption and teardown — resampler state is isolated per call and reset across responses, interruptions, and cleanup; replaced streams cannot be removed by stale cleanup; and late pipeline output is blocked after call teardown takes ownership. - VICIdial Remote Agents — VICIdial remains authoritative for campaigns, customer channels, reporting, dispositions, DNC, callbacks, and transfers, while AAVA supplies the mapped AI Agent with fail-closed ownership checks and sanitized lifecycle evidence. - More recoverable upgrades — the host recovery script handles mixed Git ownership, stale updater images, /root traversal constraints, and tracked local edits while preserving bounded backups and exact release targeting.
See the v7.5.0 changelog, Audio Profiles, and VICIdial Remote Agent setup for details.
</details>
<details> <summary><b>v7.4.1 — Reliable, simpler outbound calling 📞</b></summary>
Outbound campaigns are easier to prepare, safer to schedule, and much easier to troubleshoot from the Admin UI.
- Simpler lead intake — import validated CSV or Excel .xlsx files, or add individual leads manually. Samples and new campaigns use the canonical AI_AGENT/agent routing model while legacy AI_CONTEXT/context inputs remain compatible. - Safer campaign scheduling — scheduled calls consistently receive the lead's called number, malformed timezone or calling-window settings fail closed, campaign concurrency is counted correctly, and stale attempts recover through one validated timeout policy. - More reliable human handling — human-first AMD defaults reduce false voicemail classification, and terminal farewell/hangup handling prevents new caller input from reviving a call that is already ending. - Better HTTP-tool workflows — pre-call, in-call, and post-call HTTP tools enforce method/body compatibility; pre-call output variables remain available for enriched greetings; and bounded, sanitized tool responses and diagnostics are visible in Call History and Scheduling. - Safer upgrades — updater recovery now handles older Git installations, Docker Compose access after privilege drops, and mixed-ownership checkouts more predictably without sacrificing local tracked changes.
See the Outbound Calling guide and v7.4.1 changelog for details.
</details>
<details> <summary><b>v7.4.0 — Agent-scoped tools and Agent-only routing 🧰</b></summary>
Each Agent can now receive only the transfer destinations, calendars, and voicemail mailboxes it should be allowed to use.
- Per-Agent resource access — configure the global inventory on Tools, then choose Inherit, Selected, or None under Agents → Edit Agent → Tools for the transfer family, Google Calendar, Microsoft Calendar, and voicemail. - One enforced call snapshot — provider schemas, prompt guidance, execution, deferred transfers, and audit metadata all use the same effective resource set. Empty or stale selections fail closed, and a globally disabled tool always wins. - Restart-free tool updates — Tools → Save & Apply validates and publishes a new tool generation for new calls. Active calls keep the generation they started with; a failed build leaves the previous generation running. - Contexts retired — runtime persona routing now reads Agents from agents.db. Legacy YAML Contexts are imported atomically on upgrade, and AI_CONTEXT remains a deprecated compatibility alias while dialplans move to AI_AGENT. - Cleaner first run — empty installations start with Receptionist, Sales, and Support instead of a collection of demonstration Contexts. - Call History compatibility — tool names remain google_calendar, microsoft_calendar, and leave_voicemail, so existing filters and reports keep working.
Before upgrading—especially from v7.3.0–v7.3.3—read the current upgrade procedure and Contexts → Agents migration guide.
</details>
<details> <summary><b>v7.3.5 — Caller connection ringback 📞</b></summary>
Callers no longer wait through silent provider or pipeline startup.
- Per-agent ringback control — enable Play ringback while connecting in the Agents UI; tone:ring is supplied as the default repeating Asterisk tone. - One implementation for every call path — full-agent providers and modular pipelines share the same caller-only lifecycle, without sending setup audio to the AI provider. - Clean audio handoff — ringback stops on the first provider or pipeline greeting audio and is also cleared on no-greeting readiness, startup failure, disconnect, or call cleanup. - Safe and opt-in — existing agents remain unchanged until the setting is enabled. YAML/API users may configure an Asterisk-local tone:, sound:, or recording: media URI.
See Connection Audio / Ringback and the v7.3.5 changelog.
</details>
<details> <summary><b>v7.3.3 — Local AI stabilization 🧠</b></summary>
v7.3.3 is a Local-AI-only stabilization release. It adds no providers and keeps the cloud-provider call paths unchanged.
- Calls are isolated by session — agent prompts and conversation state no longer mutate shared Local AI Server configuration or leak across reused WebSocket connections. AI Engine and Local AI Server should be upgraded together; the legacy unscoped switch remains temporarily compatible. - Barge-in abandons interrupted output — late LLM/TTS work is quarantined, the interrupted exchange is removed from weak-model history, and the replacement turn stays focused on what the caller just said. - Farewells finish exactly once — Local hangup_call speaks the selected Kokoro/Piper/etc. farewell without a second LLM rewrite, drains partial AudioSocket or RTP tails, records agent_hangup, and then disconnects. - CPU/GPU deployment is safer — dependency pins, CUDA/cuDNN validation, optional llama.cpp architecture targeting, and idempotent preflight checks reduce first-build and rerun failures. - Community GPU evidence — Tesla V100S testing passed Faster-Whisper CUDA float16, Llama 3.1 8B Q4_K_M, Kokoro, AudioSocket, ExternalMedia, barge-in, terminal hangup, concurrent session isolation, and restart recovery.
See the Local AI community test matrix and the Unreleased changelog for the complete scope.
</details>
<details> <summary><b>v7.3.2 — stabilization release 🛡️</b></summary>
v7.3.2 is a stabilization-only patch release built from the supervised AudioSocket and ExternalMedia validation cycle.
- No new providers — scope is limited to reliability, deployment safety, documentation, and contributor-facing CI. - Grok ExternalMedia repaired — clean barge-in, cancelled-output quarantine, named-instance runtime inheritance, complete replacement turns, and exact inactivity announcements through xAI force_message. - AudioSocket and modular pipelines hardened — terminal playback, pipeline producer ownership, talk-detect echo, and inactivity-grace regressions are covered by focused tests and supervised calls. - Updater and provider-failure recovery hardened — safer ownership, rollback/stash handling, readiness validation, and an opt-in dialplan redirect. - PR quality gates expanded — Admin backend/frontend checks and CLI cross-compilation now run before merge.
Release evidence and remaining gates are tracked in the v7.3.2 validation matrix.
</details>
<details> <summary><b>v7.3.1 — Silence watchdog & safe call endings ☎️</b></summary>
AVA now protects silent calls and finishes every terminal message before disconnecting.
hangup_call farewells drain AudioSocket or ExternalMedia/RTP streaming buffers and ARI file playback before ARI disconnects the caller. Fixed sleeps no longer clip long final sentences.See Caller inactivity configuration, ElevenLabs setup, and the full v7.3.1 changelog.
</details>
<details> <summary><b>v7.3.0 — Per-agent voices 🎙️</b></summary>
Voice now belongs to agents. Configure one provider, create multiple agents that share it — each with its own voice.
Thanks @foytech for seeding this feature (#497). Full guide: docs/VOICE_SELECTION.md.
</details>
<details> <summary><b>v7.2.0 — Live-status dashboard 📡</b></summary>
Real-time system status for the Admin UI — pushed, not polled.
/api/live-status snapshot endpoint plus an SSE stream (/api/live-status/stream) aggregates AI Engine health, Local AI connectivity, active sessions, audio directories, platform checks, and Asterisk ARI into one normalized status feed.ai_engine and local_ai_server push their own readiness to the Admin UI (POST /api/live-status/publish, authenticated with LIVE_STATUS_PUSH_TOKEN), so the dashboard converges in sub-second time after a restart instead of waiting on staggered polls. Legacy /api/system/* probes remain as fallback/enrichment.LIVE_STATUS_POLL_INTERVAL_SECONDS (default 30 s, min 2 s) and LIVE_STATUS_INITIAL_PROBE_TIMEOUT_SECONDS (default 2 s), read live from .env.Full notes in CHANGELOG.md.
</details>
<details> <summary><b>v7.1.1 — Dashboard reliability & Admin UI polish 🛠️</b></summary>
A focused quality release across the Admin UI — no call-path changes.
console.logs (including one that leaked the auth token to the browser console) were removed.google_live: { type: full } provider can be edited and saved again.Full notes in CHANGELOG.md.
</details>
<details> <summary><b>v7.0.0 — the Agents release 🎯</b></summary>
The biggest release yet: manage your AI agents from the Admin UI, not a config file.
AI_AGENT dialplan variable — route a call to an agent by name. Your existing AI_CONTEXT dialplans keep working unchanged.agents.db before later major-version upgrades; see the operator migration guide for rollback boundaries.admin/admin: a one-time admin password is generated and must be changed at first login. Config exports no longer bundle your .env by default.⚠️ Major release — please read the Upgrade Notes before upgrading from 6.x.
</details>
<details> <summary><b>v6.5.4 (2026-05-25) — OpenAI Realtime GA cleanup across every code path</b></summary>
Follow-up to the v6.5.3 hotfix. v6.5.3 only flipped config/ai-agent.yaml; v6.5.4 brings the rest of the codebase in line:
src/config.py now default to api_version: ga + model: gpt-realtime (so fresh wizard installs are correct).gpt-realtime-1.5 (best audio-in/audio-out quality), gpt-realtime-2 (reasoning voice model, GPT-5-class), and gpt-realtime-mini (cost-optimized) — alongside the existing gpt-realtime.api_version: beta is detected in config (exactly once per provider lifetime, not per reconnect attempt).docs/Provider-OpenAI-Setup.md model section + fix to docs/TROUBLESHOOTING_GUIDE.md.</details>
<details> <summary><b>v6.5.3 hotfix (2026-05-25) — OpenAI Realtime restored</b></summary>
OpenAI sunset the Realtime Beta API on 2026-05-12 and removed the gpt-4o-realtime-preview-2024-12-17 model on 2026-05-07. Shipped config/ai-agent.yaml still pinned api_version: beta + that preview model, so every operator using OpenAI Realtime hit error.code: beta_api_shape_disabled and the WebSocket closed immediately. Two-line config flip — no code change required. The provider's GA wire-protocol path has shipped since v6.0.0; v6.5.3 just makes it the default everyone gets:
api_version: ga (was beta)model: gpt-realtime (was gpt-4o-realtime-preview-2024-12-17)If you have an ai-agent.local.yaml that explicitly pins api_version: beta, remove the override or change it to ga. Refs: OpenAI deprecations, gpt-realtime.
</details>
<details> <summary><b>v6.5.2 (2026-05-24) — xAI Grok + multi-instance full-agent providers</b></summary>
setup, check, rca, update, version commands (legacy aliases: init, doctor, troubleshoot).config/ai-agent.yaml), ExternalMedia RTP, and opt-in, version-gated Asterisk Media WebSocket (see the transport matrix).ai_engine and local_ai_server containers./metrics scraping.docker compose -p asterisk-ai-voice-agent up -d --build ai_engine
GPU users: If you have an NVIDIA GPU for local AI inference, see docs/LOCAL_ONLY_SETUP.md for the GPU compose overlay (docker-compose.gpu.yml) before building.
```bash
For users who prefer the command line or need headless setup.
```bash
```
Key Features: - Setup Wizard: Visual provider configuration. - Dashboard: Real-time system metrics, container status, and Asterisk connection indicator. - Asterisk Setup: Live ARI status, module checklist, config audit with guided fix commands. - Live Logs: WebSocket-based log streaming. - YAML Editor: Monaco-based editor with validation.
---
Get the Admin UI running in 2 minutes.
For a complete first successful call walkthrough (dialplan + transport selection + verification), see: - Installation Guide - Transport Compatibility - WebSocket Transport Setup — opt-in authenticated transport; qualify the intended provider, codec, and topology
sudo ./preflight.sh --apply-fixes ```
Important: Preflight creates your.envfile and generates a secureJWT_SECRET. Always run this first!
./install.sh
agent setup
Note: Legacy commandsagent init,agent quickstart,agent doctor,agent troubleshoot, andagent demoremain as hidden compatibility aliases. New workflows should use the visible commands documented indocs/CLI_TOOLS_GUIDE.md.
cp .env.example .env
Add this to your FreePBX (extensions_custom.conf):
[from-ai-agent]
exten => s,1,NoOp(Asterisk AI Voice Agent)
; AI_AGENT selects an operator-managed agent by slug.
same => n,Set(AI_AGENT=sales-agent)
; Optional: override that agent's configured provider/pipeline for this call.
; same => n,Set(AI_PROVIDER=google_live)
same => n,Stasis(asterisk-ai-voice-agent)
same => n,Hangup() Notes: - Use AI_AGENT to select an operator-managed agent. Its configured target is authoritative unless AI_PROVIDER is intentionally set as a per-call override. - Generate a current snippet with agent dialplan --agent <slug>. - See docs/FreePBX-Integration-Guide.md for channel variable precedence and examples.
1. OpenAI Realtime (Recommended for Quick Start) - Modern cloud AI with natural conversations (<2s response). - Config: config/ai-agent.golden-openai.yaml - Best for: Enterprise deployments, quick setup.
2. Deepgram Voice Agent (Enterprise Cloud) - Advanced Deepgram-managed Think stage for complex reasoning (<3s response); requires only a Deepgram API key. - Config: config/ai-agent.golden-deepgram.yaml - Best for: Deepgram ecosystem, advanced features.
3. Google Live API (Multimodal AI) - Gemini Live (Flash) with multimodal capabilities (<2s response). - Config: config/ai-agent.golden-google-live.yaml - Best for: Google ecosystem, advanced AI features.
4. ElevenLabs Agent (Premium Voice Quality) - ElevenLabs Conversational AI with premium voices (<2s response). - Config: config/ai-agent.golden-elevenlabs.yaml - Best for: Voice quality priority, natural conversations.
5. Local Hybrid (Privacy-Focused) - Local STT/TTS + Cloud LLM (OpenAI). Audio stays on-premises. - Config: config/ai-agent.golden-local-hybrid.yaml - Best for: Audio privacy, cost control, compliance.
6. Telnyx AI Inference (Cost-Effective Multi-Model) - Local STT/TTS + Telnyx LLM with 53+ models (GPT-4o, Claude, Llama). - OpenAI-compatible API with competitive pricing. - Config: config/ai-agent.golden-telnyx.yaml - Best for: Model flexibility, cost optimization, multi-provider access.
7. xAI Grok Voice Agent (Realtime Voice) - xAI realtime voice with five named voices (eve/ara/rex/sal/leo) or a custom cloned voice; μ-law @ 8 kHz caller input and observed PCM16 @ 24 kHz output converted for Asterisk. - Config: config/ai-agent.golden-grok.yaml - Best for: xAI ecosystem, telephony-native low-latency audio.
AVA also supports a Fully Local mode (100% on-premises, no cloud APIs). Three topologies are supported:
| Topology | Latency | Best For |
|---|---|---|
| **CPU-Only** | 5-15s/turn | Privacy, testing |
| **GPU (same box)** | 0.5-2s/turn | Production local |
| **Split-Server** (remote GPU) | 1-3s/turn | PBX on VPS + GPU box |
GPU setup uses docker-compose.gpu.yml overlay with CUDA-enabled llama.cpp. Community-validated: RTX 4090 achieves ~1.0s E2E.
Run your own local LLM using Ollama - perfect for privacy-focused deployments:
```yaml
| Tool | Description | Status |
|---|---|---|
transfer | Transfer to extensions, queues, or ring groups | ✅ |
cancel_transfer | Cancel in-progress transfer (during ring) | ✅ |
hangup_call | End call gracefully with farewell message | ✅ |
leave_voicemail | Route caller to voicemail extension | ✅ |
send_email_summary | Auto-send call summaries to admins | ⚙️ Disabled by default |
request_transcript |
AVA-AI-Voice-Agent-for-Asterisk 是一个专为 Asterisk 设计的 AI 语音代理项目。它通过集成先进的 AI 技术,为传统的电话系统注入智能化能力,实现自动化的语音交互与任务处理,旨在为开发者和企业提供高效、智能的语音通信解决方案。
v6.5.2 版本带来了多项重大更新。技术层面,引入了强大的 Tool Calling System,支持通过 AI 驱动的操作(如转接、发送邮件)与任何 Provider 协作;新增了 Agent CLI 工具集(包含 setup、check、rca 等命令)以优化运维;采用模块化 Pipeline 系统,允许独立选择 STT、LLM 和 TTS 供应商;同时支持 AudioSocket 和 ExternalMedia RTP 双重传输模式,确保了极高的灵活性。
本项目对硬件架构有明确要求,仅支持 x86_64 (AMD64) 架构。操作系统需为支持 systemd 的 Linux 发行版,包括 Ubuntu 20.04+、Debian 11+、RHEL/Rocky/Alma 8+、Fedora 38+ 以及 Sangoma Linux。在运行前,请确保已通过 Docker Compose 启动 ai_engine 以进行健康检查。
安装过程支持多种模式。推荐使用交互式 CLI 进行安装(执行 `./install.sh agent setup`),或通过官方脚本安装生产级 Agent CLI 工具。对于拥有 NVIDIA GPU 的用户,在构建前需参考 LOCAL_ONLY_SETUP.md 并使用 docker-compose.gpu.yml 进行 GPU 叠加配置。此外,也支持通过手动配置环境的方式进行部署。
项目提供了快速启动指南,帮助用户在 2 分钟内运行起 Admin UI。对于需要完成首次成功通话(包括 Dialplan 配置、传输模式选择及验证)的用户,请务必参考 Installation Guide 和 Transport Compatibility 文档。此外,系统还支持通过 HTTP Tools 进行通话前、通话中及通话后的自动化流程控制。
配置阶段至关重要。在正式运行前,必须先执行 `sudo ./preflight.sh --apply-fixes` 进行预检并自动修复,该脚本会自动创建 `.env` 文件并生成安全的 `JWT_SECRET`。用户可以通过交互式 CLI 进行环境配置,并根据需求在配置文件中定义不同的 AI 供应商与传输参数。
本项目支持高度的隐私保护与本地化部署。通过集成 Ollama,用户可以运行完全自托管的本地 LLM,无需依赖外部 API Key 即可实现智能对话。这对于对数据隐私要求极高的企业级部署场景非常友好,同时也为开发者提供了灵活的接口调用能力。
系统具备强大的工作流集成能力。通过 Email Integration 模块,管理员可以自动接收通话摘要、全文转录及元数据;用户甚至可以通过语音指令(如“请把通话记录发到我的邮箱”)触发转录发送。内置的 Tool 模块支持 `transfer`(转接到分机、队列或环路组)等多种功能,实现了从语音识别到业务执行的闭环。
融合Asterisk与现代AI技术的优秀项目。架构清晰,社区活跃,填补PBX智能化空白。生产级应用潜力大,维护持续。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
经综合评估,Asterisk AI语音智能体 在AI工具赛道中表现稳健,质量优秀。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。
| 原始名称 | AVA-AI-Voice-Agent-for-Asterisk |
| 原始描述 | 开源AI工作流:An open-source AI Voice Agent that integrates with Asterisk/FreePBX using Audios。⭐1.0k · Python |
| Topics | 语音AIAsteriskPBX电话交换工作流自动化 |
| GitHub | https://github.com/hkjarral/AVA-AI-Voice-Agent-for-Asterisk |
| License | MIT |
| 语言 | Python |
收录时间:2026-05-25 · 更新时间:2026-05-30 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。