โ† Back to Transportation
Transportation by @gbessoni

ringbot

Make outbound AI phone calls

0
Source Code

RingBot - AI Phone Calls

Make outbound phone calls with an AI voice agent that can have natural conversations.

๐Ÿ’ฐ Why RingBot? (99% Cheaper Voice AI)

Traditional Voice AI costs: $0.10-0.50/minute (ElevenLabs, PlayHT, etc.) RingBot costs: ~$0.01/minute (just Twilio phone costs!)

Component Provider Cost
STT (Speech-to-Text) Groq Whisper FREE
LLM (AI Brain) Groq Llama 3.3 70B FREE
TTS (Text-to-Speech) Groq Orpheus FREE
Voice Infrastructure LiveKit Cloud FREE tier
Phone Calls Twilio ~$0.01/min

You only pay for actual phone minutes through Twilio.

๐Ÿ“ฆ Two Ways to Use RingBot

Option 1: DIY (Free - Bring Your Own Keys)

Set up your own infrastructure - completely free except Twilio phone costs.

Required accounts:

  1. Twilio - https://twilio.com

    • Phone number ($1/month) + calls ($0.01/min)
    • Get: TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_PHONE_NUMBER
  2. LiveKit Cloud - https://cloud.livekit.io (free tier)

    • Create project + SIP trunk connected to Twilio
    • Get: LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET, LIVEKIT_SIP_TRUNK_ID
  3. Groq - https://console.groq.com (100% free)

# .env for DIY setup
TWILIO_ACCOUNT_SID=your_sid
TWILIO_AUTH_TOKEN=your_token
TWILIO_PHONE_NUMBER=+1234567890
LIVEKIT_URL=wss://your-project.livekit.cloud
LIVEKIT_API_KEY=your_key
LIVEKIT_API_SECRET=your_secret
LIVEKIT_SIP_TRUNK_ID=your_trunk_id
GROQ_API_KEY=your_groq_key

Option 2: Hosted (Paid - Just Bring Twilio)

Don't want to set up LiveKit and Groq? Use our hosted infrastructure.

  • โœ… No LiveKit setup needed
  • โœ… No Groq setup needed
  • โœ… Just connect your Twilio account
  • ๐Ÿ’ฐ Pay per minute + rate limits apply

Coming soon - Contact for early access: https://talkforceai.com

๐Ÿš€ Use Cases

1. Order Food by Phone

"Call DeLuca's Pizza and order a large pepperoni for pickup under Greg"

2. Make Reservations

"Call the restaurant and make a reservation for 4 people Saturday at 7pm"

3. Schedule Appointments

"Call Dr. Smith's office and schedule my annual checkup for next week morning"

4. Customer Service Calls

"Call Comcast and ask about upgrading my internet plan"

5. Personal Messages

"Call mom and tell her I love her and ask how her day was"

6. Business Lead Qualification

"Call this list of leads and ask if they're interested in our parking solutions"

7. Automated Daily Calls

"Every morning at 9am, call the warehouse and check inventory status"

8. Appointment Reminders

"Call patients and remind them of their appointments tomorrow"

Making a Call

curl -X POST http://localhost:8000/ringbot/call \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+1XXXXXXXXXX",
    "purpose": "Brief description of call objective",
    "context": "Additional context the AI should know"
  }'

Parameters:

  • to - Phone number in E.164 format (+1XXXXXXXXXX)
  • purpose - What the call is about (guides AI behavior)
  • context - Background info, specific requests, what to collect

Example: Order Pizza

Step 1: Find the restaurant

goplaces search "pizza" --lat 41.36 --lng="-72.56" --limit 3

Step 2: Get phone number

goplaces details ChIJRdQwYs4v5okRY2gp8pgskJ0
# Phone: (860) 663-3999

Step 3: Make the call

curl -X POST http://localhost:8000/ringbot/call \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+18606633999",
    "purpose": "Order a pizza for pickup",
    "context": "Order: 1 large pepperoni pizza. Customer name: Greg. Ask for pickup time and total."
  }'

Tips for Good Results

Purpose - Keep it to one clear sentence:

  • โœ… "Order a pizza for pickup"
  • โœ… "Schedule a dental cleaning"
  • โŒ "Call them and maybe order something or ask questions"

Context - Be specific:

  • Customer/caller name
  • Exact order or request
  • Preferences and constraints
  • What info to collect back

Service Management

Start the agent:

cd /path/to/ringbot/src && python agent.py start

Start the API:

cd /path/to/ringbot && python main.py

Check call status:

curl http://localhost:8000/ringbot/call/{call_id}