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

SIP clients and trunks enter through Kamailio. Media flows through RTPengine.

KubeVoIP keeps the SIP control plane Kubernetes-native while minimizing state inside pods. Direct calls route from Kamailio to registered SIP users or trunks; application calls route to an AsteriskPool when needed.

  1. SIP users and provider trunks send INVITEs to a SIPGateway.
  2. Kamailio authenticates callers and reads dial policy from PostgreSQL.
  3. RTPengine rewrites SDP and relays media through stable replica addresses.
  4. Calls reach SIP users, trunks, or Asterisk application pods.

Install

Start with Helm OCI.

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

Then follow the two-phone quickstart.