Welcome to Asterisk AI Voice Agent development! This directory contains everything you need to contribute features, fix bugs, and extend the project.
New to the project? Choose your path:
- Operator Contributor Guide - Zero-knowledge contributor walkthrough
- Run
scripts/setup-contributor.shand open in Windsurf - Tell AVA: "I want to contribute"
- Quick Start Guide - Set up your dev environment in 15 minutes
- Architecture Overview - Understand the system (10-minute read)
- Common Pitfalls - Avoid these mistakes
- Tool Development - Create telephony/business tools (hangup, transfer, email)
- Provider Development - Add STT/LLM/TTS providers (Azure, Google, etc.)
- Pipeline Development - Build custom audio processing pipelines
- Coding Guidelines - Code standards for all contributions
- Full Agent Providers - Build monolithic STT+LLM+TTS providers
- Pipeline Adapters - Build modular STT, LLM, or TTS adapters
- Pre-Call Hooks - Enrich calls with CRM/database lookups
- In-Call Hooks - AI-invoked tools during conversation
- Post-Call Hooks - Webhooks to Slack, Discord, CRM, etc.
- Testing Guide - Test your changes with real calls
- Testing Develop Branch - Try new features while preserving your configs
- Debugging Guide - Debug with logs, RCA scripts, and agent CLI
- Code Style - Project conventions and best practices
- Architecture Deep Dive - Complete technical architecture
- Schema Reference - Tool schema formats by provider
- API Reference - Core API documentation
Technical specs for each provider:
- Provider-Google-Implementation.md - Google Live API internals
- Provider-Deepgram-Implementation.md - Deepgram Voice Agent internals
- Provider-OpenAI-Implementation.md - OpenAI Realtime API internals
- Local Hybrid Pipeline Implementation - Tool execution for pipelines (real-world example)
- Team Setup Guide - Linear MCP integration
- Milestones - Major features and architectural decisions
- Tool Examples - Creating custom tools
- Provider Examples - Implementing custom providers
- Testing Examples - Integration/unit test patterns
- Fork and clone the repository
- Create a feature branch from
develop - Make changes following our code style
- Test with real calls using
agent rca - Submit PR with testing evidence
agent check # Standard diagnostics report
agent rca # Post-call root cause analysis (most recent call)
agent setup # Interactive setup wizard (if needed)
agent update # Pull latest code + apply updatesSee cli/README.md for complete CLI reference.
./scripts/rca_collect.sh # Collect full diagnostic bundle
./scripts/analyze_logs.py --call-id # Analyze specific callFor end-user and operator documentation, see the parent /docs directory:
- Installation Guide - Setup instructions
- FreePBX Integration - Dialplan configuration
- Production Deployment - Production best practices
- Monitoring Guide - Prometheus + Grafana
- Tool Calling Guide - Using tools from caller perspective
- Read the root CONTRIBUTING.md for Git workflow and PR process
- Follow the code style in code-style.md
- Add tests for new features
- Update documentation as needed
- Make at least one test call for telephony changes
- Join our Discord: https://discord.gg/ysg8fphxUe - Community support and discussions
- Stuck on something? Check Common Pitfalls
- Architecture questions? See Architecture Deep Dive
- Tool issues? See Tool Development
- Provider issues? See Provider Development
- Current Version: 6.3.1
- Active Branch:
develop - Roadmap: See /docs/ROADMAP.md
- Community Features: GitHub Issues + Linear integration
Ready to contribute? Start with the Quick Start Guide! 🚀