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 webhook
https://calling-ai.dkenterprise.tech/api/twilio/incomingStatus callback
https://calling-ai.dkenterprise.tech/api/twilio/statusMedia stream
wss://calling-ai.dkenterprise.tech/ws/twilioDerived 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"}'