Kubernetes VoIP operator

KubeVoIP is a Kubernetes-native SIP and VoIP platform.

Run SIP on Kubernetes with Kamailio gateways, RTPengine media relays, Asterisk application pods, and PostgreSQL-backed routing state.

Kubernetes APIs

Manage SIP users, trunks, routes, media relays, gateways, and application pods through Kubernetes resources.

SIP edge

Use Kamailio for registration and routing while RTPengine handles media address rewriting and relay placement.

Runtime routing

Store users, dial policies, trunks, routes, and registrations in PostgreSQL so pods can stay disposable.

Provider-neutral trunking

Model inbound and outbound SIP trunks without coupling the platform to one carrier or cloud.

Asterisk applications

Run private Asterisk application pods for workloads such as Echo while direct calls avoid unnecessary application state.

Namespace isolation

Install one operator release per telephony namespace with namespaced Secret access and shared cluster-scoped CRDs.

How it works

A small set of focused components, wired together by Kubernetes.

KubeVoIP keeps configuration in Kubernetes and runtime routing data in PostgreSQL. Pods can be replaced, rescheduled, and scaled without turning every change into a hand-edited SIP config file.

SIP clients Trunks SIPGateway MediaRelay SIP users AsteriskPool

Install

Start with Helm, then initialize with the CLI.

helm install kubevoip oci://ghcr.io/kubevoip/charts/kubevoip \
  --version 0.5.0 \
  --namespace telephony --create-namespace

uvx kubevoip -n telephony init

Next

Bring your own network and database choices.

The quickstart gives you two phones that can call each other. The docs cover LoadBalancer behavior, external addresses, PostgreSQL, trunks, and production-oriented operations.