One SDK.
Every telephony platform.
Connect any WebSocket voice bot to Twilio, Genesys, Avaya, Cisco, Amazon Connect, FreeSWITCH, or Asterisk. Zero custom integration code.
from voxbridge import VoxBridge
bridge = VoxBridge({
"provider": "twilio",
"listen_port": 8765,
"bot_url": "ws://localhost:9000/ws",
})
@bridge.on_call_start
async def handle_call(session):
print(f"Call from {session.from_number}")
@bridge.on_audio
async def process_audio(session, frame):
return frame # forward to bot
bridge.run()How it works
VoxBridge sits between your telephony provider and your voice bot
Telephony Provider
Twilio, Genesys, Avaya, Cisco, AWS Connect, FreeSWITCH, Asterisk
VoxBridge
Protocol translation, codec conversion, session management
Your Voice Bot
Any WebSocket bot: STT + LLM + TTS pipeline
Why VoxBridge?
8 Providers Built-in
Twilio, Genesys, Avaya, Cisco, Amazon Connect, FreeSWITCH, Asterisk, and a generic WebSocket serializer.
Automatic Codec Conversion
mu-law, A-law, PCM16, and Opus. Hub-and-spoke through PCM16 means any-to-any conversion works automatically.
Zero Boilerplate
Config-driven mode: write a YAML, run one command. No code needed. Or use decorators for full control.
Async-First
Built on asyncio. Each call gets its own bidirectional task pair. Handles hundreds of concurrent calls.
Add Providers in 1 File
Implement BaseSerializer with 3 methods and 3 properties. Register it. Done. Your provider works with every bot.
pip install & go
Pure Python core with zero native dependencies. Optional extras for Opus, SIP, and FastAPI server.
Supported Providers
Each provider has a dedicated serializer that handles its unique protocol
Get Started in 60 Seconds
Install VoxBridge
pip install voxbridgeGenerate a config
voxbridge initEdit bridge.yaml
provider: type: genesys # or twilio, avaya, cisco, etc. listen_port: 8765 bot: url: ws://your-bot:9000/ws codec: pcm16 sample_rate: 16000
Run the bridge
voxbridge run --config bridge.yamlThat's it. Your telephony provider connects to VoxBridge, and audio flows to your bot.
Under the Hood
Clean, modular architecture designed for extensibility
core/events.py
9 Pydantic event types: AudioFrame, CallStarted, CallEnded, DTMF, Hold, Transfer, Custom, Error
audio/codecs.py
Pure-Python G.711 mu-law/A-law. Hub-and-spoke through PCM16. Optional Opus via opuslib.
serializers/
8 built-in serializers. Each is one file implementing BaseSerializer. Pure message translators — no I/O.
bridge.py
Central orchestrator. Bidirectional async loops. Decorator API. Wires serializers + codecs + transports.
transports/
WebSocket client + server transport. Optional SIP transport via PJSIP for SBC integration.
session.py
Per-call state management. Codec pipeline. Concurrent call tracking. Auto-cleanup on disconnect.
Deploy Anywhere
Docker
docker compose upFly.io
fly deploySelf-hosted
voxbridge run -c bridge.yamlStop writing custom
telephony integrations.
Build your voice bot once. Connect it everywhere.