πŸ“ž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

FeatureDescription
πŸŽ™οΈ Voice ConversationsNatural speech-to-text and text-to-speech powered by Whisper and Kokoro
πŸ€– LLM IntegrationConnects to OpenAI, vLLM, Ollama, LM Studio, and more
πŸ”§ Built-in ToolsWeather, timers, callbacks, date/time, calculator
πŸ”Œ Plugin SystemEasily add custom tools with Python
🌐 REST APIInitiate outbound calls, execute tools, schedule calls
πŸ”— WebhooksTrigger calls from Home Assistant, n8n, and more
⏰ Scheduled CallsOne-time or recurring calls (daily briefings, reminders)
πŸ—£οΈ Custom PhrasesCustomize greetings, goodbyes, and responses via config
πŸ“Š ObservabilityPrometheus 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."

Example conversation flow

πŸ’‘ Use Cases

Use CaseExample
⏲️ Timers & Reminders"Set a timer for 10 minutes"
πŸ“ž Callbacks"Call me back in an hour"
🌀️ Weather BriefingsScheduled morning weather calls
πŸ“… Appointment RemindersOutbound calls with confirmation
🚨 Alerts & NotificationsWebhook-triggered phone calls
🏠 Smart HomeVoice control via phone

🧠 Recommended Models

Quick reference for GPU-specific configurations. See Configuration for full details.

GPUVRAMRecommended LLMSTT Model
H100 / A10080GBmeta-llama/Llama-3.1-70B-Instructfaster-whisper-large-v3
DGX Spark128GBmeta-llama/Llama-3.1-70B-Instructfaster-whisper-large-v3
RTX 509032GBQwen/Qwen2.5-32B-Instructfaster-whisper-large-v3
RTX 409024GBQwen/Qwen2.5-14B-Instructfaster-whisper-large-v3
RTX 309024GBmeta-llama/Llama-3.1-8B-Instructfaster-whisper-medium
RTX 408016GBmeta-llama/Llama-3.1-8B-Instructfaster-whisper-medium
RTX 308010GBQwen/Qwen2.5-7B-Instructfaster-whisper-small

🎬 Demo

Demo video thumbnail
# 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

  1. πŸš€ Getting Started β€” Installation & setup
  2. βš™οΈ Configuration β€” Environment variables
  3. 🌐 API Reference β€” REST API endpoints
  4. πŸ”§ Built-in Tools β€” Available capabilities
  5. πŸ”Œ Creating Plugins β€” Add custom tools
  6. πŸ“– 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/health

Expected output:

{
  "status": "healthy",
  "sip_registered": true,
  "active_calls": 0
}

πŸ†˜ Support