VoxCore is a FastAPI-based voice pipeline worker built on Pipecat. It accepts inbound and outbound calls via multiple telephony transports, runs a real-time speech pipeline, and delivers structured results to VoxBridge.

How it works

  1. A telephony provider connects (WebSocket or LiveKit SDK)
  2. VoxCore fetches bot configuration from VoxBridge
  3. The pipeline runs: customer speech → STT → LLM → TTS → audio response
  4. On call end: recording uploads, post-call analysis runs, results webhook fires

Transports

VoxCore supports four transport modes:
TransportProtocolAudioUse case
WebSocketiCallMate WSS8kHz LINEAR16iCallMate telephony dialler
LiveKit SIP InboundLiveKit SDK16kHzDID → LiveKit room → bot
LiveKit SIP OutboundLiveKit SDK16kHzVoxBridge-triggered outbound calls
ExotelExotel WebSocket8kHz LINEAR16Exotel Voicebot applet
All transports share the same pipeline factory and post-call logic — the transport layer is the only difference.

Tech stack

ComponentTechnology
RuntimePython 3.12, FastAPI, uvicorn
Pipeline frameworkPipecat 0.0.108
STTDeepgram Nova-3, Soniox
LLMGoogle Gemini, OpenAI, Google Vertex AI
TTSElevenLabs, Sarvam, Tarang
VADSilero (ONNX)
Turn detectionSmartTurnV3 (ONNX)
Recording storageDigitalOcean Spaces (S3-compatible)
Package manageruv

Statelessness

VoxCore is architecturally stateless. No business data persists between calls — transcripts, metrics, and pipeline state are all scoped to a single call and destroyed when it ends. The only cross-call state is CallTracker, an in-memory concurrency limiter. It tracks active call IDs (not call content) to enforce MAX_CONCURRENT_CALLS per worker, and cleans up when calls complete. Workers can be independently restarted without data loss.