Streaming mode uses Deepgram for STT and ElevenLabs for TTS. Store deepgram_api_key and elevenlabs_api_key on the channel connection. Turn-based mode uses Twilio Gather/Say without streaming providers.
- ./scripts/test-voice-live.sh — validates provider API keys.
- ./scripts/test-voice-twilio-e2e.sh — Twilio webhook + media stream checklist.
- Run a real call with a Twilio number before offering voice SLAs.
See docs/voice-calls.md in the repo for architecture detail.