All Agents
📞
Voice AILive

Voice Receptionist

AI-Powered Phone Receptionist for Businesses

  • 📞Answers calls 24/7 — no voicemail, no hold music
  • 📅Books appointments with real-time Google Calendar
  • 💬Sends SMS confirmations automatically via Twilio
  • 🏠Self-hosted — all AI logic runs on your Django backend

<1s

Response Time

4

AI Tools

24/7

Uptime

90s

Avg Call

Voice Receptionist

Call ended
Simulated call demo
0 messages

Watch It In Action

Full walkthrough — from incoming call to booked appointment in under 2 minutes.

What Happens in 90 Seconds

From phone ring to booked appointment — here's the full call flow.

📞

Caller

Caller dials your Twilio number

📱

Twilio Number

Twilio routes call to VAPI

🎙️

VAPI

VAPI converts speech to text (STT)

🖥️

Django Server

Django sends text to Claude AI

🧠

Claude AI

Claude decides which tools to call

tool calls
📅

Google Calendar

Check Availability

Book Appointment

Create Event

💬

Twilio SMS

send_sms()

📊

PostgreSQL

Log Call Data

response
🔊

VAPI TTS

Converts text → speech, caller hears AI

System Architecture

Every component runs on your infrastructure. Vapi only handles voice transport.

🖥️

Django Backend

Your Server

connects to
📞

Vapi

Voice Transport

🧠

Claude API

AI Brain

📅

Google Calendar

Availability

💬

Twilio

SMS

📊

PostgreSQL

Call Logs

Cost Per Call

Transparent pricing — see exactly what each provider charges per minute.

Monthly Cost Comparison

Human receptionist vs AI Voice Agent — based on avg 3-min calls

Human Receptionist
AI Voice Agent
$8K$6K$4K$2K$0
-99%
$2,500
$16
100
-98%
$2,500
$47
300
-97%
$2,800
$78
500
-95%
$3,200
$155
1K
-93%
$4,500
$310
2K
-90%
$8,000
$775
5K
calls / month
💰Save up to 97% at 500 calls/month
🕐24/7 availability, zero sick days

Cost Per 1-Minute Call

Rough estimate — actual costs vary by plan and usage

VAPI (STT + TTS)

Speech-to-text, text-to-speech, orchestration

~$0.05 - 0.15

Twilio (Inbound)

Per-minute inbound call charge

~$0.0085

Twilio (SMS)

Outbound SMS via send_sms()

~$0.0079

Claude API

Tokens consumed per call turn

~$0.01 - 0.05

Total per minute

~$0.07 - 0.22
🎙️

VAPI

  • Per-minute call cost (~$0.05-0.15/min) includes STT, TTS, and call orchestration
  • No charge for LLM — you use a Custom LLM endpoint (Django → Claude)
  • No phone number charge — your Twilio number is imported via SIP trunking
📱

Twilio

  • Phone number rental: ~$1.15/month for US number
  • Inbound call minutes: ~$0.0085/min (Twilio still charges even though VAPI handles the call)
  • Outbound SMS: ~$0.0079 per message via send_sms() in your code
🧠

Anthropic (Claude)

  • Claude API usage based on tokens per call via your ANTHROPIC_API_KEY
  • Claude Sonnet: ~$3/M input tokens, $15/M output tokens
  • Typical 1-min call uses ~$0.01-0.05 in tokens

How Twilio + VAPI Work Together

You buy a Twilio number, then import it into VAPI's dashboard. VAPI takes over call handling via SIP trunking — Twilio routes the call to VAPI, and VAPI handles the voice AI pipeline (STT, your Django server for Claude decisions, TTS). Twilio still bills you for the number rental and per-minute inbound usage. VAPI bills separately for its STT/TTS/orchestration layer.

Built for Real Clinics

Every feature designed for businesses that book appointments by phone.

🗣️

Natural Voice Conversations

Callers speak naturally — the agent understands intent, asks follow-up questions, and responds conversationally. Optimized for short, natural phone dialogue.

📅

Real-Time Calendar Booking

Checks Google Calendar availability in 30-minute slots, handles new patient (60 min) and returning (30 min) appointment types, and creates events instantly.

💬

SMS Confirmations

After booking, automatically sends a Twilio SMS to the caller with appointment details — date, time, and type. No manual follow-up needed.

🔄

Agentic Tool Loop

Claude makes multiple decisions per call turn — check availability, book appointment, send SMS, and log the call — all in one conversation step.

📊

Call Logging & Analytics

Every call is logged with caller phone, duration, AI-generated summary, and booking status. Full Django admin dashboard for search and filtering.

🏠

Self-Hosted Intelligence

Vapi is only the voice transport layer (STT/TTS). All AI logic, tools, and business rules run on your own Django backend — fully customizable.

Who It's For

Built for teams that need 24/7 phone coverage without hiring.

Dental and medical practices needing 24/7 appointment booking

Service businesses replacing manual receptionist workflows

Clinics wanting after-hours phone coverage with AI

Any business that books time-based appointments by phone

Teams building custom voice AI agents on their own infra

Production Stack

Battle-tested technologies running in production.

DjangoBackend
Claude API (Tool Use)AI / ML
Vapi (STT/TTS)AI / ML
Google Calendar APIBackend
Twilio SMSBackend
PostgreSQLDatabase
DockerInfrastructure
AWS EC2Infrastructure

Deploy in 6 Steps

Clone, configure, and start taking AI calls. Full details in the GitHub README.

1

Clone the repository

$git clone https://github.com/codewithmuh/ai-voice-agent.git && cd ai-voice-agent
2

Configure environment variables

Add your API keys: Anthropic, Vapi, Google Calendar, and Twilio

$cp .env.example .env
3

Set up Google Calendar

Create a service account in Google Cloud, enable Calendar API, download credentials JSON, and share your calendar with the service account email

4

Start with Docker

Starts Django on port 8000 and PostgreSQL on port 5432

$docker compose up --build
5

Expose with ngrok

Copy the HTTPS URL for the next step

$ngrok http 8000
6

Connect Vapi

In Vapi Dashboard: set Custom LLM URL to your-ngrok-url/api/vapi/chat/completions/ and Server URL to your-ngrok-url/api/vapi/webhook/ — assign a phone number and call to test

Ready to automate your phone lines?

Deploy the Voice Receptionist on your own infrastructure. Open source, fully customizable, production-ready.

Built by CodeWithMuh