The pieces are wired end to end and the call really happens, but the project describes itself as a kick-start for your own voice work rather than a finished product - conversation history, latency and error recovery are on its own wish list. Two costs meter while the call runs, Twilio's and OpenAI's, so call duration is a budget line.
A starting point for AI phone calling. The server places an outbound call through Twilio, streams the audio to OpenAI's realtime model and the reply back to the line, so the two-way conversation continues until the call ends.
- Outbound calls placed through your own Twilio number
- Call audio processed live by the realtime model, in both directions
- Language switching during the call, so it can start in one and continue in another
- Prompts shipped for common scenarios such as booking a restaurant table
- An ngrok tunnel set up automatically, because Twilio has to reach your server for the webhooks
- Optional call recording behind a flag
Node.js 22 or newer, cloned and built locally. Three accounts: Twilio with an account SID, auth token and a number, an OpenAI key, and an ngrok authtoken. All five go in the environment, plus an optional recording flag. Phone numbers must be in E.164 format - a leading plus and country code - or the call is rejected. The ngrok tunnel puts your server on the public internet on a random URL protected by a random secret.
