Vapi
Vapi runs your end-to-end voice agent: STT, LLM, TTS, conversation logic, tool calls. The bridge proxies Teler call audio into Vapi and relays the agent’s response back.
Reference repos
Section titled “Reference repos”Prerequisites
Section titled “Prerequisites”- A Vapi account with an assistant created and deployed
- The
assistant_idof that Vapi assistant - A Teler account with an active API key
- One Teler phone number on your account
- An ngrok auth token (for local development)
- Docker and Docker Compose
Configuration
Section titled “Configuration”| Variable | Required | Default | Description |
|---|---|---|---|
VAPI_API_KEY | yes | none | Your Vapi API key. |
VAPI_ASSISTANT_ID | yes | none | The ID of the Vapi assistant to connect calls to. |
VAPI_SAMPLE_RATE | no | 16000 | Vapi-side sample rate in Hz. |
VAPI_MESSAGE_BUFFER_SIZE | no | 50 | Queue depth before relaying. |
TELER_API_KEY | yes | none | Your Teler API key. |
NGROK_AUTHTOKEN | yes (local) | none | ngrok auth token. |
5-minute setup
Section titled “5-minute setup”git clone https://github.com/frejun-tech/teler-vapi-bridgecd teler-vapi-bridgecp .env.example .envdocker compose up -d --buildgit clone https://github.com/frejun-tech/teler-vapi-node-bridgecd teler-vapi-node-bridgecp .env.example .envdocker compose up -d --buildInitiate a call
Section titled “Initiate a call”curl -X POST http://localhost:8000/api/v1/calls/initiate-call \ -H "Content-Type: application/json" \ -d '{ "from_number": "+91XXXXXXXXXX", "to_number": "+91XXXXXXXXXX" }'Audio quirks
Section titled “Audio quirks”Vapi defaults to 16 kHz. The bridge converts to Teler’s 8 kHz
automatically. Keep VAPI_SAMPLE_RATE=16000 unless you have a specific
reason to change it.
Tuning the buffer
Section titled “Tuning the buffer”VAPI_MESSAGE_BUFFER_SIZE controls how many in-flight messages can queue
before relaying. Increase if you see message drops; decrease if latency
matters more than throughput.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Likely cause | Fix |
|---|---|---|
| Silent call | Wrong VAPI_ASSISTANT_ID | Verify in the Vapi dashboard |
| 401 from Vapi | Invalid VAPI_API_KEY | Rotate the key in Vapi |
| Choppy / dropped audio | Buffer too small | Raise VAPI_MESSAGE_BUFFER_SIZE |
| Wrong voice / language | Assistant misconfigured | Edit the assistant in Vapi |
Next steps
Section titled “Next steps” Other recipes OpenAI Realtime, ElevenLabs, Gemini, and more.
Bridge architecture The conceptual model behind every recipe.
Vapi docs Configure your assistant on the Vapi side.