Skip to content

Recipes

Recipes are reference integrations between Teler and popular AI voice providers. Each one is a runnable repo (clone, set environment variables, docker compose up) and ships with both a Python and a Node variant (except where noted).

A single WebSocket handles STT, LLM, and TTS. Lowest latency, fastest path to a working agent.

End-to-end agent platforms that handle conversation logic on their side.

Bring your own LLM and TTS. These recipes wire Teler to a streaming STT provider only.

Every WebSocket-based bridge follows the same pattern. Once you’ve run one, you’ve run them all.

Terminal window
git clone https://github.com/frejun-tech/teler-<provider>-bridge
cd teler-<provider>-bridge
cp .env.example .env
# fill TELER_API_KEY, NGROK_AUTHTOKEN, and the provider's API key
docker compose up --build
# in another shell
curl -X POST http://localhost:8000/api/v1/calls/initiate-call \
-H "Content-Type: application/json" \
-d '{"from_number":"+91...","to_number":"+91..."}'

Standard environment variables across all bridges:

VariableRequiredPurpose
TELER_API_KEYyesYour Teler API key from the dashboard
NGROK_AUTHTOKENyes (local)Tunnel for receiving Teler webhooks during dev
SERVER_DOMAINautoPublic URL exposed to Teler, set by ngrok
<PROVIDER>_API_KEYyesProvider-specific credential, see each recipe

The bridges are intentionally small. If your provider isn’t listed:

  1. Fork the closest recipe (Deepgram for STT-only, OpenAI for realtime models, ElevenLabs for agent platforms).
  2. Replace the provider WebSocket logic.
  3. Adjust the sample-rate conversion if needed.

Or build from scratch using the SDKs: the StreamConnector primitive is exactly the abstraction the bridges use under the hood.