Last updated April 16, 2026

v1.0.0 http://localhost:8080/v1

VoiceBlender bridges SIP and WebRTC voice calls with multi-party audio mixing, real-time speech-to-text, text-to-speech, AI agent integration, recording, and webhook-based event delivery.

Configuration

VariableDefaultDescription
INSTANCE_ID(auto-generated UUID)Instance identifier included in all API responses and webhook events
HTTP_ADDR:8080REST API listen address
SIP_BIND_IP127.0.0.1IP used in SDP, Contact, and Via headers
SIP_LISTEN_IP(same as SIP_BIND_IP)UDP socket bind IP
SIP_PORT5060SIP listen port
SIP_HOSTvoiceblenderSIP User-Agent name
ICE_SERVERSstun:stun.l.google.com:19302STUN/TURN URLs for WebRTC ICE, comma-separated
RECORDING_DIR/tmp/recordingsLocal directory for recording output files
LOG_LEVELinfoLog verbosity: debug, info, warn, error
WEBHOOK_URLGlobal webhook URL for event delivery (fallback when no per-leg or per-room webhook is set)
WEBHOOK_SECRETHMAC-SHA256 signing secret for the global webhook
ELEVENLABS_API_KEYAPI key for ElevenLabs TTS, STT, and Agent provider
VAPI_API_KEYAPI key for VAPI Agent provider
S3_BUCKETS3 bucket name for recording uploads
S3_REGIONus-east-1AWS region for S3
S3_ENDPOINTCustom S3-compatible endpoint (e.g. MinIO)
S3_PREFIXKey prefix applied to all S3 objects
TTS_CACHE_ENABLEDfalseEnable disk-backed TTS audio cache; cached audio persists across restarts
TTS_CACHE_DIR/tmp/tts_cacheDirectory for cached TTS audio files (used when TTS_CACHE_ENABLED=true)
TTS_CACHE_INCLUDE_API_KEYfalseInclude API key in TTS cache key; set true if different keys map to different voice clones
SIP_JITTER_BUFFER_MS0SIP ingress jitter buffer target delay in ms (0 = disabled passthrough). Applies to every SIP leg.
SIP_JITTER_BUFFER_MAX_MS300Maximum depth of the SIP ingress jitter buffer in ms. Frames beyond this are dropped oldest-first to catch up after a stall.
SIP_REFER_AUTO_DIALfalseWhen true, accept incoming SIP REFER requests and automatically originate the transferred call. Default-deny: stays off unless the SIP edge is locked down (IP allow-lists, digest auth) because auto-dialing arbitrary Refer-To URIs is a classic toll-fraud vector. Outbound transfers initiated via the REST API are unaffected by this flag.