AI Calling Agent

Twilio Media Streams → VAD → STT → LLM → TTS, all provider-swappable.

Configuration

Public URL https://calling-ai.dkenterprise.tech
Twilio credentials Account SID + Auth Token
Twilio number +918511223346
Signature check enforced
Speech to text openai
Language model openai / gpt-4o
Text to speech elevenlabs
Supabase connected
n8n optional
WhatsApp whatsapp:+918511223346
Media stream host same origin as this app

Twilio number setup

In the Twilio console, set A call comes in to a Webhook, HTTP POST:

Voice webhookhttps://calling-ai.dkenterprise.tech/api/twilio/incoming
Status callbackhttps://calling-ai.dkenterprise.tech/api/twilio/status
Media streamwss://calling-ai.dkenterprise.tech/ws/twilio

Derived from PUBLIC_URL, so this app must serve the WebSocket itself. That only works on a host running server.ts as a persistent process — serverless platforms return 404 here and the call drops in silence. To host the stream elsewhere, set MEDIA_STREAM_URL.

Place a test outbound call

curl -X POST https://calling-ai.dkenterprise.tech/api/calls/outbound -H "Content-Type: application/json" -d '{"to":"+15551234567"}'