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, PostgreSQL-backed routing state, and vendor-neutral SIP/RTP observability.

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.

SIP/RTP observability

Read safe SIP summaries and RTP relay logs from Kubernetes streams, or export opt-in HEP captures to HOMER.

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 repo add kubevoip https://charts.kubevoip.com
helm repo update
helm install kubevoip kubevoip/kubevoip \
  --version 0.6.7 \
  --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, observability, and production-oriented operations.