๐ v0.1.0
๐ v0.1.0
๐ค SIP Enabled AI Agent
ROBO CODED โ This release was made with AI and may not be 100% sane. But the code does work! ๐
Release Date: November 30, 2025
License: AGPL-3.0
Platform: NVIDIA DGX Spark (Grace Blackwell GB10)
๐ Overview
The first public release of SIP AI Assistant โ a voice-powered AI assistant that answers phone calls, understands natural language, and performs actions through an extensible plugin system.
Built for the NVIDIA DGX Spark with 128GB unified memory, this system runs entirely on local infrastructure with no cloud dependencies for voice processing or LLM inference.
โจ Highlights
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ SIP AI Assistant v0.1.0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
Full SIP/RTP voice call handling โ
โ โ
Real-time STT via Whisper (Speaches) โ
โ โ
Natural TTS via Kokoro (Speaches) โ
โ โ
LLM integration (vLLM, OpenAI, Ollama) โ
โ โ
10 built-in tools โ
โ โ
Plugin system for custom tools โ
โ โ
REST API for outbound calls โ
โ โ
Scheduled & recurring calls โ
โ โ
Customizable phrases โ
โ โ
Full observability stack โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ง Built-in Tools
| Tool | Description |
|---|---|
๐ค๏ธ WEATHER | Current weather from Tempest station |
โฒ๏ธ SET_TIMER | Countdown timers with voice alerts |
๐ CALLBACK | Schedule callbacks to any number |
๐ด HANGUP | End calls gracefully |
๐ STATUS | Check pending timers/callbacks |
โ CANCEL | Cancel scheduled tasks |
๐ DATETIME | Current date and time |
๐งฎ CALC | Math calculations |
๐ JOKE | Random jokes (general, tech, dad) |
๐ฆ SIMON_SAYS | Echo back verbatim |
๐ REST API
| Endpoint | Method | Description |
|---|---|---|
/health | GET | Health check |
/call | POST | Initiate outbound call |
/call/{id} | GET | Get call status |
/call/{id} | DELETE | Hang up call |
/tools | GET | List available tools |
/tools/{name}/call | POST | Execute tool via call |
/schedule | POST | Schedule a call |
/schedule | GET | List scheduled calls |
/schedule/{id} | DELETE | Cancel scheduled call |
Scheduled Calls
# One-time call
curl -X POST http://localhost:8080/schedule \
-d '{"extension": "1001", "tool": "WEATHER", "at_time": "07:00"}'
# Recurring daily
curl -X POST http://localhost:8080/schedule \
-d '{"extension": "1001", "tool": "WEATHER", "at_time": "07:00", "recurring": "daily"}'
# Weekdays only
curl -X POST http://localhost:8080/schedule \
-d '{"extension": "1001", "message": "Stand up time!", "at_time": "09:00", "recurring": "weekdays"}'๐ฃ๏ธ Customizable Phrases
Configure the assistant's personality via environment variables or JSON:
Environment Variables:
PHRASES_GREETINGS=["Hello!","Hi there!","Hey!"]
PHRASES_GOODBYES=["Goodbye!","Take care!"]
PHRASES_ACKNOWLEDGMENTS=["Okay.","Got it.","Sure."]
PHRASES_THINKING=["One moment.","Let me check."]
PHRASES_ERRORS=["Sorry, I didn't catch that."]
PHRASES_FOLLOWUPS=["Anything else?"]JSON File (data/phrases.json):
{
"greetings": ["Beep boop! What do you want, human?"],
"goodbyes": ["Bye, meatbag!"],
"errors": ["My audio sensors must be malfunctioning."]
}๐ Plugin System
Create custom tools with Python:
from tool_plugins import BaseTool, ToolResult, ToolStatus
class MyTool(BaseTool):
name = "MY_TOOL"
description = "Does something cool"
parameters = {
"input": {"type": "string", "required": True}
}
async def execute(self, params):
return ToolResult(
status=ToolStatus.SUCCESS,
message=f"You said: {params['input']}"
)๐ Observability
| Feature | Technology |
|---|---|
| ๐ Metrics | Prometheus |
| ๐ Tracing | OpenTelemetry / Tempo |
| ๐ Logging | Structured JSON |
| ๐ Dashboards | Grafana |
Key Metrics:
sip_agent_calls_totalโ Total calls handledsip_agent_call_duration_secondsโ Call duration histogramsip_agent_tool_calls_totalโ Tool invocations by namesip_agent_stt_latency_secondsโ Speech-to-text latencysip_agent_tts_latency_secondsโ Text-to-speech latencysip_agent_llm_latency_secondsโ LLM response latency
๐๏ธ Architecture
flowchart LR
subgraph Caller
Phone[๐ฑ SIP Phone]
end
subgraph Agent["๐ค SIP AI Agent"]
SIP[SIP Client]
Audio[Audio Pipeline]
Tools[Tool Manager]
API[REST API]
end
subgraph Services
LLM[๐ง LLM Server]
Speaches[๐ค Speaches]
end
Phone <-->|SIP/RTP| SIP
SIP <--> Audio
Audio <--> Speaches
Audio <--> Tools
Tools <--> LLM
API <--> Tools
๐ฅ๏ธ System Requirements
Recommended: NVIDIA DGX Spark
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ข NVIDIA DGX Spark โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ง Grace Blackwell GB10 Superchip โ
โ ๐พ 128GB Unified Memory โ
โ โก 1 PFLOP AI Performance โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Minimum Requirements
| Component | Requirement |
|---|---|
| CPU | 8+ cores |
| RAM | 32GB |
| GPU | NVIDIA with 16GB+ VRAM |
| Storage | 50GB SSD |
| Network | Gigabit Ethernet |
Software Dependencies
| Dependency | Version |
|---|---|
| Python | 3.11+ |
| Docker | 24.0+ |
| Docker Compose | 2.20+ |
| Speaches | Latest |
๐ฆ Installation
# Clone repository
git clone https://github.com/your-org/sip-agent.git
cd sip-agent
# Configure
cp sip-agent/.env.example sip-agent/.env
nano sip-agent/.env
# Start
docker compose up -d
# Verify
curl http://localhost:8080/health๐ Documentation
Full documentation available at sip-agent.readme.io
| Document | Description |
|---|---|
| Overview | Architecture and features |
| Getting Started | Installation guide |
| Configuration | Environment variables |
| API Reference | REST API endpoints |
| Tools | Built-in tools |
| Plugins | Custom tool development |
| Examples | Integration patterns |
โ ๏ธ Known Limitations
- WebSocket realtime STT mode is experimental (use
STT_MODE=batchfor stability) - Maximum concurrent calls limited by LLM server capacity
- Weather tool requires Tempest station (or customize for other APIs)
- Some TTS voices may struggle with unusual words or names
๐ Roadmap
| Feature | Status |
|---|---|
| ๐ต Music on hold | Planned |
| ๐ Call transfer | Planned |
| ๐๏ธ Calendar integration | Planned |
| ๐ Web search tool | Planned |
| ๐ Home Assistant native | Planned |
| ๐ฑ SMS notifications | Planned |
| ๐ Multi-language support | Planned |
๐ Acknowledgments
- NVIDIA DGX Spark โ AI supercomputer platform
- Speaches โ Unified STT/TTS server
- PJSIP โ SIP stack
- FastAPI โ REST API framework
- WeatherFlow Tempest โ Weather data
๐ License
SPDX-License-Identifier: AGPL-3.0-or-later
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
๐ Support
| Resource | Link |
|---|---|
| ๐ Docs | sip-agent.readme.io |
| ๐ Issues | GitHub Issues |
| ๐ฌ Discussions | GitHub Discussions |
SIP AI Assistant v0.1.0
Made with โค๏ธ and ๐ค
Now go make some calls! ๐
