πGeneral Disarray
π€ Voice-powered AI assistant for SIP phone systems by CHAOS.CORP
ROBO CODED β This documentation was made with AI and may not be 100% sane. But the code does work! π
πGeneral Disarray - SIP AI Assistant
A voice-powered AI assistant that answers phone calls, understands natural language, and can perform actions like setting timers, checking weather, scheduling callbacks, and more.
β¨ Features
| Feature | Description |
|---|---|
| ποΈ Voice Conversations | Natural speech-to-text and text-to-speech powered by Whisper and Kokoro |
| π€ LLM Integration | Connects to OpenAI, vLLM, Ollama, LM Studio, and more |
| π§ Built-in Tools | Weather, timers, callbacks, date/time, calculator |
| π Plugin System | Easily add custom tools with Python |
| π REST API | Initiate outbound calls, execute tools, schedule calls |
| π Webhooks | Trigger calls from Home Assistant, n8n, and more |
| β° Scheduled Calls | One-time or recurring calls (daily briefings, reminders) |
| π£οΈ Custom Phrases | Customize greetings, goodbyes, and responses via config |
| π Observability | Prometheus metrics, OpenTelemetry tracing, JSON logs |
π Quick Example
Call the assistant and say:
"What's the weather like?"
sequenceDiagram
participant User as π€ User
participant Agent as π€ SIP Agent
participant STT as π€ Speaches
participant LLM as π§ LLM
participant Tool as π€οΈ Weather Tool
User->>Agent: "What's the weather like?"
Agent->>STT: Audio stream
STT-->>Agent: Transcribed text
Agent->>LLM: User query + context
LLM-->>Agent: [TOOL:WEATHER]
Agent->>Tool: Execute
Tool-->>Agent: Weather data
Agent->>LLM: Tool result
LLM-->>Agent: Natural response
Agent->>STT: Text to speech
STT-->>Agent: Audio
Agent->>User: "At Storm Lake, it's 44Β°..."
Assistant responds:
"At Storm Lake, as of 9:30 pm, it's 44 degrees with foggy conditions. Wind is calm."
π‘ Use Cases
| Use Case | Example |
|---|---|
| β²οΈ Timers & Reminders | "Set a timer for 10 minutes" |
| π Callbacks | "Call me back in an hour" |
| π€οΈ Weather Briefings | Scheduled morning weather calls |
| π Appointment Reminders | Outbound calls with confirmation |
| π¨ Alerts & Notifications | Webhook-triggered phone calls |
| π Smart Home | Voice control via phone |
π§ Recommended Models
Quick reference for GPU-specific configurations. See Configuration for full details.
| GPU | VRAM | Recommended LLM | STT Model |
|---|---|---|---|
| H100 / A100 | 80GB | meta-llama/Llama-3.1-70B-Instruct | faster-whisper-large-v3 |
| DGX Spark | 128GB | meta-llama/Llama-3.1-70B-Instruct | faster-whisper-large-v3 |
| RTX 5090 | 32GB | Qwen/Qwen2.5-32B-Instruct | faster-whisper-large-v3 |
| RTX 4090 | 24GB | Qwen/Qwen2.5-14B-Instruct | faster-whisper-large-v3 |
| RTX 3090 | 24GB | meta-llama/Llama-3.1-8B-Instruct | faster-whisper-medium |
| RTX 4080 | 16GB | meta-llama/Llama-3.1-8B-Instruct | faster-whisper-medium |
| RTX 3080 | 10GB | Qwen/Qwen2.5-7B-Instruct | faster-whisper-small |
π¬ Demo
# Example call flow
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Incoming call from: +1 (555) 123-4567 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β π€ "Hello! This is your AI assistant. How can I help?" β
β π€ "What time is it?" β
β π€ "It's 3:45 PM on Saturday, November 30th." β
β π€ "Set a timer for 5 minutes" β
β π€ "Timer set for 5 minutes. I'll let you know!" β
β π€ "Thanks, goodbye" β
β π€ "Goodbye! Have a great day!" β
β π΄ Call ended (duration: 0:32) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Documentation
- π Getting Started β Installation & setup
- βοΈ Configuration β Environment variables
- π API Reference β REST API endpoints
- π§ Built-in Tools β Available capabilities
- π Creating Plugins β Add custom tools
- π Examples β Integration patterns
π¦ Quick Install
# Clone the repository
git clone https://github.com/your-org/sip-agent.git
cd sip-agent
# Configure environment
cp .env.example .env
nano .env
# Start with Docker Compose
docker compose up -d
# Verify it's running
curl http://localhost:8080/healthExpected output:
{
"status": "healthy",
"sip_registered": true,
"active_calls": 0
}π Support
- π Documentation
- π Issue Tracker
- π¬ Discussions
Updated about 1 month ago
