能力标签
Asterisk AI语音智能体
🛠
AI工具

Asterisk AI语音智能体

基于 Python · 开源 AI 工具,GitHub 社区精选
英文名:AVA-AI-Voice-Agent-for-Asterisk
⭐ 1.0k Stars 🍴 214 Forks 💻 Python 📄 MIT 🏷 AI 8.2分
8.2AI 综合评分
语音AIAsteriskPBX电话交换工作流自动化
✦ AI Skill Hub 推荐

Asterisk AI语音智能体 是 AI Skill Hub 本期精选AI工具之一。已获得 1.0k 颗 GitHub Star,综合评分 8.2 分,整体质量较高。我们强烈推荐将其纳入你的 AI 工具库,帮助提升工作效率。

📚 深度解析

Asterisk AI语音智能体 是一款基于 Python 的开源工具,在 GitHub 上收获 1k+ Star,是语音AI、Asterisk、PBX、电话交换领域中的优质开源项目。开源工具的最大优势在于代码完全透明,你可以审计每一行代码的安全性,也可以根据自身需求进行二次开发和定制。

**为什么要使用开源工具而非商业 SaaS?**
对于个人开发者和有隐私需求的用户,本地部署的开源工具意味着数据不离本机,不受第三方服务商的数据政策约束。同时,开源工具通常没有使用次数限制和月度费用,一次安装即可长期使用,对于高频使用场景的总拥有成本(TCO)远低于订阅制商业工具。

**安装与环境准备**
Asterisk AI语音智能体 依赖 Python 运行环境。建议通过 pyenv(Python)或 nvm(Node.js)管理 Python 版本,避免全局环境污染。对于新手用户,推荐先创建虚拟环境(python -m venv venv && source venv/bin/activate),再安装依赖,这样即使出现问题也可以随时删除虚拟环境重新开始,不影响系统稳定性。

**社区与维护**
GitHub Issue 和 Discussion 是获取帮助的最快渠道。在提问前建议先检查 Closed Issues(已关闭的问题),大多数常见问题都已有解答。遇到 Bug 时,提供 pip list 的输出、完整错误堆栈和最小可复现示例,能显著提高开发者响应速度。AI Skill Hub 将持续追踪 Asterisk AI语音智能体 的版本更新,及时通知重要功能变化。

📋 工具概览

Asterisk AI语音智能体 是一款基于 Python 开发的开源工具,专注于 语音AI、Asterisk、PBX 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

GitHub Stars
⭐ 1.0k
开发语言
Python
支持平台
Windows / macOS / Linux
维护状态
正常维护,社区驱动
开源协议
MIT
AI 综合评分
8.2 分
工具类型
AI工具
Forks
214

📖 中文文档

以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

Asterisk AI语音智能体 是一款基于 Python 开发的开源工具,专注于 语音AI、Asterisk、PBX 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

📌 核心特色
  • 开源免费,支持本地部署,数据完全自主可控
  • 活跃的 GitHub 开源社区,持续迭代更新
  • 提供详细文档和使用示例,新手友好
  • 支持自定义配置,灵活适配不同使用环境
  • 可作为基础组件集成进现有技术栈或进行二次开发
🎯 主要使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一: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('安装成功')"
📋 安装步骤说明
  1. 访问 GitHub 仓库页面
  2. 按照 README 文档完成依赖安装
  3. 根据系统环境完成初始化配置
  4. 参考官方示例或文档开始使用
  5. 遇到问题可在 GitHub Issues 中查找解答
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 命令行使用
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"
📑 README 深度解析 真实文档 完整度 87/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

简介

<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>

Version License Python Docker Asterisk Ask DeepWiki Discord <br> <a href="https://www.producthunt.com/products/ava-ai-voice-agent-for-asterisk?embed=true&amp;utm_source=badge-featured&amp;utm_medium=badge&amp;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&amp;theme=light&amp;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>

---

🎉 What's New

<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.

  • 30-second inbound inactivity protection by default — AVA asks “Are you still there?”, waits 15 seconds for a reply, then speaks a configurable final warning and ends the call. Outbound agents remain opt-in.
  • The agent keeps its configured voice — check-ins and final warnings are synthesized by the active Google Live, OpenAI Realtime, Grok, Deepgram, ElevenLabs, local full-agent, or pipeline voice.
  • Transport-safe hangup — watchdog and 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.
  • Deepgram and ElevenLabs lifecycle fixes — Deepgram control frames no longer split greetings, and ElevenLabs response-completion plus hosted-silence handling keeps AVA's watchdog authoritative.
  • Global and per-agent controls — configure defaults under Advanced Settings → Voice Activity Detection → Caller Inactivity, then optionally override them per agent. Call History labels watchdog endings as No input timeout.

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.

  • Provider-aware voice picker in the Agent form: a dropdown of OpenAI's 10 GA voices, suggestions + custom clone IDs for Grok, Google Live's 30 prebuilt voices, Deepgram's Aura models — the control adapts to the agent's selected AI Engine.
  • Provider-specific safety — the provider-level voice becomes the default voice; agents without one behave exactly as before. OpenAI and Google log and fall back for unknown values. Deepgram preserves a configured Aura value for review but fails the call before connection when the voice is unknown or its language does not match the Deepgram Agent language.
  • Observable — every call logs the resolved voice and its source, and Call History shows "Voice: marin (from agent)" per call.
  • Agent voice changes apply instantly — no engine restart.

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.

  • Live-status hub — a single /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.
  • Push-first — 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.
  • Configurable — 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.

  • Dashboard reliability — the Asterisk status pill no longer flaps on a transient ARI blip: it reads the engine's authoritative, reconnect-supervised ARI state and applies hysteresis. The system endpoints the Dashboard polls every 5s no longer block the admin event loop, the heaviest is TTL-cached, polling backs off on errors, failed polls surface in the error banner, and a single bad poll no longer flashes cards to "Loading…".
  • No more "Loading configuration…" flash — ~11 config pages now seed from a shared stale-while-revalidate cache of the config document, so revisiting a settings page is instant.
  • Accessibility (WCAG AA) — form labels programmatically associated with inputs, a focus-trapping modal, a navigation landmark + "skip to content" link, accessible names on icon-only buttons, non-colour status cues on the topology, a visible dark-mode toggle on-state, and light-mode contrast fixes. Debug console.logs (including one that leaked the auth token to the browser console) were removed.
  • Prompt editor — configured tool names are colour-coded by their in-call status (enabled / global / not-enabled) as you type.
  • Fix (#436) — a canonical 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.

  • 🤖 Agents tab — create, edit, and manage agents in the UI. Start from a template (receptionist, after-hours, appointment booker, and more), set the prompt and provider, and copy a ready-to-paste dialplan snippet.
  • 📊 Multi-agent dashboard — live KPIs (active agents, active calls, calls routed, transfers), per-agent stats, and routing breakdowns at a glance.
  • ☎️ New AI_AGENT dialplan variable — route a call to an agent by name. Your existing AI_CONTEXT dialplans keep working unchanged.
  • 🔄 Automatic migration — your existing contexts move into a local agents database on first start. Back up agents.db before later major-version upgrades; see the operator migration guide for rollback boundaries.
  • 🔒 Security hardening — no more 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:

  • Pydantic defaults in src/config.py now default to api_version: ga + model: gpt-realtime (so fresh wizard installs are correct).
  • Admin UI "Add Provider" template for OpenAI Realtime no longer seeds the sunset preview model.
  • Model dropdown removes the 5 sunset preview options and adds 3 new GA models — 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.
  • Legacy preview values in operator YAML now render in a "Custom (legacy — will not connect)" optgroup with a yellow warning banner above the form so the broken state is visible without silently swapping the operator's config.
  • Engine emits a one-shot warning when api_version: beta is detected in config (exactly once per provider lifetime, not per reconnect attempt).
  • Docs: full rewrite of 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>

✨ Features

Technical Features

  • Tool Calling System: AI-powered actions (transfers, emails) work with any provider.
  • Agent CLI Tools: setup, check, rca, update, version commands (legacy aliases: init, doctor, troubleshoot).
  • Modular Pipeline System: Independent STT, LLM, and TTS provider selection.
  • Multiple Transports: AudioSocket (default in config/ai-agent.yaml), ExternalMedia RTP, and opt-in, version-gated Asterisk Media WebSocket (see the transport matrix).
  • Per-Agent Audio Profiles: Stable and enhanced 8 kHz telephony profiles, plus opt-in 16 kHz AudioSocket with provider-native PCM conversion on supported Asterisk versions and G.722/wideband endpoint or trunk legs. ExternalMedia RTP remains on the supported 8 kHz profiles; G.711/PSTN Agents remain on an 8 kHz profile.
  • Streaming-First Downstream: Streaming playback when possible, with automatic fallback to file playback for robustness.
  • High-Performance Architecture: Separate ai_engine and local_ai_server containers.
  • Observability: Built-in Call History for per-call debugging + optional /metrics scraping.
  • State Management: SessionStore for centralized, typed call state.
  • Barge-In Support: Interrupt handling with configurable gating.

Start ai_engine (required for health checks)

docker compose -p asterisk-ai-voice-agent up -d --build ai_engine

4. Verify Installation

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

🔧 Advanced Setup (CLI)

For users who prefer the command line or need headless setup.

Option B: Manual Setup

```bash

Retrieve one-time password: docker compose -p asterisk-ai-voice-agent logs admin_ui | grep -i password

```

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.

---

🚀 Quick Start

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

🎥 Demo

Watch the demo

Run preflight with auto-fix (creates .env, generates JWT_SECRET)

sudo ./preflight.sh --apply-fixes ```

Important: Preflight creates your .env file and generates a secure JWT_SECRET. Always run this first!

Option A: Interactive CLI

./install.sh
agent setup
Note: Legacy commands agent init, agent quickstart, agent doctor, agent troubleshoot, and agent demo remain as hidden compatibility aliases. New workflows should use the visible commands documented in docs/CLI_TOOLS_GUIDE.md.

Configure environment

cp .env.example .env

Edit .env with your API keys

Configure Asterisk Dialplan

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.

7 Golden Baseline Configurations

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.

Fully Local (Optional)

AVA also supports a Fully Local mode (100% on-premises, no cloud APIs). Three topologies are supported:

TopologyLatencyBest For
**CPU-Only**5-15s/turnPrivacy, testing
**GPU (same box)**0.5-2s/turnProduction local
**Split-Server** (remote GPU)1-3s/turnPBX 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.

🏠 Self-Hosted LLM with Ollama (No API Key Required)

Run your own local LLM using Ollama - perfect for privacy-focused deployments:

```yaml

Email Integration

  • Automatic Call Summaries: Admins receive full transcripts and metadata.
  • Caller-Requested Transcripts: "Email me a transcript of this call."
ToolDescriptionStatus
transferTransfer to extensions, queues, or ring groups✅
cancel_transferCancel in-progress transfer (during ring)✅
hangup_callEnd call gracefully with farewell message✅
leave_voicemailRoute caller to voicemail extension✅
send_email_summaryAuto-send call summaries to admins⚙️ Disabled by default
request_transcript
🇨🇳 中文文档镜像 AI 翻译 2026-05-25
英文原文章节由系统翻译为中文摘要,便于快速理解。完整原文见上方 "📑 README 深度解析"。
📌 简介

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 以进行健康检查。

🛠 安装步骤(Docker/pip/源码)

安装过程支持多种模式。推荐使用交互式 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 进行通话前、通话中及通话后的自动化流程控制。

⚙️ 配置说明(含 MCP / env)

配置阶段至关重要。在正式运行前,必须先执行 `sudo ./preflight.sh --apply-fixes` 进行预检并自动修复,该脚本会自动创建 `.env` 文件并生成安全的 `JWT_SECRET`。用户可以通过交互式 CLI 进行环境配置,并根据需求在配置文件中定义不同的 AI 供应商与传输参数。

🔌 API 说明

本项目支持高度的隐私保护与本地化部署。通过集成 Ollama,用户可以运行完全自托管的本地 LLM,无需依赖外部 API Key 即可实现智能对话。这对于对数据隐私要求极高的企业级部署场景非常友好,同时也为开发者提供了灵活的接口调用能力。

🔄 工作流/模块

系统具备强大的工作流集成能力。通过 Email Integration 模块,管理员可以自动接收通话摘要、全文转录及元数据;用户甚至可以通过语音指令(如“请把通话记录发到我的邮箱”)触发转录发送。内置的 Tool 模块支持 `transfer`(转接到分机、队列或环路组)等多种功能,实现了从语音识别到业务执行的闭环。

🎯 aiskill88 AI 点评 A 级 2026-05-25

融合Asterisk与现代AI技术的优秀项目。架构清晰,社区活跃,填补PBX智能化空白。生产级应用潜力大,维护持续。

📚 实用指南(长尾问题)
适合谁
  • 需要让 Claude / Cursor 操作本地工具的 AI 工程师
  • 构建多智能体协作系统的 Agent 开发者
  • 做语音类 AI 产品的开发者
最佳实践
  • 配置 MCP 服务器时建议使用 stdio 传输 + JSON-RPC,避免暴露公网
  • 生产部署优先使用 Docker Compose 隔离依赖,并挂载 volume 持久化数据
  • 本地部署优先选 GGUF 量化模型,节省显存并保持响应速度
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • MCP 配置路径拼错或权限不足,重启 Claude Desktop 才生效
  • 容器内无法访问宿主机 localhost — 使用 host.docker.internal
  • 显存不足直接 OOM — 优先降低 context 或换更小的量化模型
  • Python 依赖冲突:建议用 venv / uv 隔离环境
部署方案
  • Docker:AVA-AI-Voice-Agent-for-Asterisk 提供官方镜像,docker compose up 一键启动
  • CLI:直接 npm install -g / pip install,命令行调用
  • 本地部署:CPU 8GB 起,GPU 推荐 16GB+ 显存
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
AVA-AI-Voice-Agent-for-Asterisk 中文教程AVA-AI-Voice-Agent-for-Asterisk 安装报错怎么办AVA-AI-Voice-Agent-for-Asterisk MCP 配置AVA-AI-Voice-Agent-for-Asterisk Docker 部署AVA-AI-Voice-Agent-for-Asterisk Agent 工作流AVA-AI-Voice-Agent-for-Asterisk 与同类工具对比AVA-AI-Voice-Agent-for-Asterisk 最佳实践AVA-AI-Voice-Agent-for-Asterisk 适合谁用

⚡ 核心功能

👥 适合谁
  • 需要让 Claude / Cursor 操作本地工具的 AI 工程师
  • 构建多智能体协作系统的 Agent 开发者
  • 做语音类 AI 产品的开发者
⭐ 最佳实践
  • 配置 MCP 服务器时建议使用 stdio 传输 + JSON-RPC,避免暴露公网
  • 生产部署优先使用 Docker Compose 隔离依赖,并挂载 volume 持久化数据
  • 本地部署优先选 GGUF 量化模型,节省显存并保持响应速度
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • MCP 配置路径拼错或权限不足,重启 Claude Desktop 才生效
  • 容器内无法访问宿主机 localhost — 使用 host.docker.internal
  • 显存不足直接 OOM — 优先降低 context 或换更小的量化模型

👥 适合人群

AI 技术爱好者研究人员和学生开发者和工程师技术创业者

🎯 使用场景

  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发

⚖️ 优点与不足

✅ 优点
  • +MIT 协议,可免费商用
  • +完全开源免费,无授权费用
  • +本地部署,数据完全自主可控
  • +开发者社区支持,遇问题可查可问
⚠️ 不足
  • −安装和初始配置可能需要一定技术基础
  • −功能完整性通常不如成熟商业产品
  • −技术支持主要依赖开源社区,响应速度不稳定
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。

🔗 相关工具推荐

📰 相关 AI 新闻
🍿 AI 圈相关吃瓜
🗺️ 相关解决方案
🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合

❓ 常见问题 FAQ

AVA-AI-Voice-Agent-for-Asterisk 是一款Python开发的AI辅助工具。开源AI工作流:An open-source AI Voice Agent that integrates with Asterisk/FreePBX using Audios。⭐1.0k · Python 主要应用场景包括:智能客服中心、自动语音应答系统、企业内部通话管理。
💡 AI Skill Hub 点评

经综合评估,Asterisk AI语音智能体 在AI工具赛道中表现稳健,质量优秀。如果你已有明确的使用需求,可以直接上手体验;如果还在评估阶段,建议对比同类工具后再做决策。

📚 深入学习 Asterisk 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
🔗 原始来源
🐙 GitHub 仓库  https://github.com/hkjarral/AVA-AI-Voice-Agent-for-Asterisk

收录时间:2026-05-25 · 更新时间:2026-05-30 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。

📺 订阅 AI Skill Hub Daily Telegram 频道
每天 8 条精选 AI Skill、MCP、Agent 与自动化工具推送
加入频道 →