How sadman-rahman135/voice-agent works
CallPilot is a browser-based AI receptionist backed by a FastAPI business API, with a staff dashboard and a simulated-only outbound reminder system. A caller starts a voice session, speaks with the LiveKit voice worker, and the worker requests business actions through the API; the API enforces verification and shop rules and persists results. Staff can review calls and manage operations in the dashboard. The README documents the principal runtime connections; the sampled source also confirms API routing, tool authentication, booking calls and worker session handling. Other unsampled capabilities are represented by their exact enclosing directories.
Main entry points: main.py FastAPI application · internal Receptionist tools · session.py Postgres · dashboard Staff dashboard
Components 22
Voice experience
- Talk experience
frontend/components/call/TalkExperience.tsx - Voice worker
voice-agent/callpilot_agent/main.py - Agent behavior
voice-agent/callpilot_agent/agents.py
Business API
- FastAPI application
backend/app/main.py - Tool authentication
backend/app/api/deps.py - Receptionist tools
backend/app/api/internal - Staff routes
backend/app/api/v1
Business operations
- Appointments
backend/app/services/booking.py - Identity verification
backend/app/services/verification.py - Call lifecycle
backend/app/services/call_lifecycle.py - Knowledge answers
backend/app/knowledge - Postgres
backend/app/db/session.py
Staff dashboard
- Staff dashboard
frontend/app/dashboard - Staff sign-in
backend/app/api/v1/auth.py - Dashboard data
backend/app/services/dashboard.py - Live call oversight
backend/app/services/live_calls.py
Outbound reminders
- Reminder scheduler
backend/app/outbound/scheduler.py - Reminder jobs
backend/app/outbound/jobs.py - Calling eligibility
backend/app/outbound/eligibility.py - Simulated phone
frontend/components/sim/SimPhone.tsx
Other components
- Browser caller
- LiveKit rooms
Connections 25
- Browser caller → Talk experience: speaks through
README.md - Talk experience → FastAPI application: starts session
README.md - Talk experience → LiveKit rooms: joins room
README.md - LiveKit rooms → Voice worker: dispatches worker
README.md - Voice worker → FastAPI application: requests tools
README.md - Voice worker → Agent behavior: runs agent
voice-agent/callpilot_agent/agents.py - FastAPI application → Receptionist tools: registers routes
backend/app/main.py - FastAPI application → Staff routes: registers routes
backend/app/main.py - Receptionist tools → Tool authentication: authenticates requests
backend/app/api/internal/booking.py - Receptionist tools → Appointments: calls booking logic
backend/app/api/internal/booking.py - Receptionist tools → Identity verification: checks identity
backend/app/api/internal/account.py - Receptionist tools → Knowledge answers: requests answers
backend/app/api/internal/public.py - FastAPI application → Postgres: configures sessions
backend/app/main.py - Appointments → Postgres: stores appointments
README.md - Call lifecycle → Postgres: stores call records
README.md - Staff dashboard → Staff sign-in: signs in through
README.md - Staff dashboard → FastAPI application: loads staff data
README.md - Staff routes → Dashboard data: loads dashboard data
backend/app/api/v1/dashboard.py - Staff routes → Live call oversight: serves live calls
- Staff dashboard → Live call oversight: monitors calls
README.md - Reminder scheduler → Reminder jobs: runs jobs
- Reminder jobs → Calling eligibility: checks permission
- Reminder scheduler → Postgres: reads reminders
README.md - Reminder scheduler → Simulated phone: simulates ringing
README.md - Browser caller → Simulated phone: answers reminder
README.md