Sample and production-oriented bridges that connect Exotel AgentStream (bidirectional WebSocket audio) to Voice AI providers. Place outbound calls with the Connect Voice AI API.
| Provider | Path | Language | Best for |
|---|---|---|---|
| OpenAI Realtime | integrations/openai-realtime |
Python | Speech-to-speech realtime |
| ElevenLabs | integrations/elevenlabs |
Python | Conversational AI + ambience |
| Gemini Live | integrations/gemini-live |
Node.js | Google Gemini Live |
| Sarvam | integrations/sarvam |
Python | Indian languages (STT/TTS) |
| Pipecat | integrations/pipecat |
Python | Pluggable STT → LLM → TTS (ExotelFrameSerializer) |
| Dograh | integrations/dograh |
Python | Drop Exotel telephony into Dograh (platform wiring, not an AI vendor) |
| Agent recipes | integrations/agents |
Python | Mix-and-match S2S + STT/LLM/TTS stacks on AgentStream |
Full picker: integrations/agents/README.md
| Type | Examples |
|---|---|
| Speech-to-speech | GPT Realtime, Gemini Live, Gemini Live + Pipecat, Grok Voice |
| Pipelines | Deepgram / AssemblyAI / Sarvam / Speechmatics × GPT or Gemini × Cartesia / ElevenLabs / Grok TTS / OpenAI TTS |
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp env.example .env # set OPENAI_API_KEY
python main.py # shim → integrations/openai-realtimeCanonical OpenAI package: integrations/openai-realtime/.
- Start a bridge and expose it (
ngrok http <port>→wss://…). - Configure Exotel credentials (
shared/env.exotel.example). - Place a call:
python shared/place_connect_call.py \
--to +91XXXXXXXXXX \
--stream-url "wss://YOUR_HOST/?sample-rate=8000"Details: docs/CONNECT_VOICE_AI.md · WSS protocol: docs/AGENTSTREAM_WSS_PROTOCOL.md
shared/ # place_connect_call.py + Exotel env example
docs/ # Connect API + WSS protocol
integrations/<provider>/ # self-contained bridge + README + deps
integrations/agents/ # Voice AI stack recipes (S2S + STT/LLM/TTS)
- Python 3.8+ (and Node 18+ for Gemini Live)
- Exotel account with Voicebot / Connect Voice AI enabled
- Provider API keys for the integration you run
MIT — see LICENSE.