This project provides a simple working example of an LLM powered voice bot using Twilio Conversation Relay.
- Twilio account with a phone number
- OpenAI Platform Account and
OPENAI_API_KEY
- nGrok installed globally
git clone https://github.com/pBread/twilio-conversation-relay-beta.git
cd twilio-conversation-relay-beta
npm install
The application needs to know the domain (HOSTNAME
) it is deployed to in order to function correctly. This domain is set in the HOSTNAME
environment variable and it must be configured before starting the app.
Start ngrok by running this command.
ngrok http 3000
Then copy the domain
Note: ngrok provides static domains for all ngrok users. You can avoid updating the HOSTNAME
every time by provisioning your own static domain.
OPENAI_API_KEY=your-openai-api-key
HOSTNAME=your-ngrok-domain.ngrok.app
This command will start the Express server which handles incoming Twilio webhook requests and media streams.
npm run dev
Go to your Twilio Console and configure the Voice webhooks for your Twilio phone number:
- Incoming Call Webhook: Select
POST
and set url to:https://your-ngrok-domain.ngrok.app/incoming-call
- Call Status Update Webhook: Select
POST
and set url to:https://your-ngrok-domain.ngrok.app/call-status-update
You're all set. Place a call to your Twilio Phone Number and you should see the real-time transcript logged to your local terminal.