Go SIP-to-AI voice bridge. Accepts inbound SIP calls from a PBX (Asterisk / FreeSWITCH) and bridges the audio to an AI voice backend in real-time.
Supported AI providers
| Provider | Protocol | Audio format |
|---|---|---|
| OpenAI Realtime | WebSocket | G.711 µ-law 8 kHz (native) |
| Deepgram Voice Agent | WebSocket | G.711 µ-law 8 kHz (native) |
| Gemini Live (BidiGenerateContent) | WebSocket | PCM16 16 kHz send / 24 kHz recv |
- Go 1.23+
- A SIP PBX that can route calls to this process (Asterisk, FreeSWITCH, Kamailio, …)
- API key for at least one AI provider
git clone <repo>
cd sip2ai
go build -o sip2ai ./cmd/sip2aiOr run directly without a binary:
go run ./cmd/sip2aiInstall from OCI registry:
helm install sip2ai oci://ghcr.io/<owner>/charts/sip2ai \
--version 1.0.0 \
--set secrets.openai=sk-... \
--set config.ai.provider=openaiOr from local checkout:
helm install sip2ai deploy/helm/sip2ai \
--set secrets.openai=sk-...Create a secret with provider API keys:
kubectl create secret generic sip2ai-keys \
--from-literal=openai=sk-... \
--from-literal=deepgram=... \
--from-literal=gemini=...Then reference it:
helm install sip2ai deploy/helm/sip2ai \
--set existingSecret=sip2ai-keysAll fields under config: in values.yaml map directly to config.yaml:
helm install sip2ai deploy/helm/sip2ai \
--set config.ai.provider=openai \
--set config.openai.voice=shimmer \
--set config.log.level=debug \
--set "config.openai.system_prompt=You are a sales agent."helm uninstall sip2ai