Skip to main content

Documentation Index

Fetch the complete documentation index at: https://orbit-docs.devotel.io/llms.txt

Use this file to discover all available pages before exploring further.

ADR-003: Self-hosted orbit-media SFU replaces LiveKit Cloud

Status: CURRENT Date: 2026-05-16

Context

LiveKit Cloud trunk ST_7nXYgUWxPPcD used IP-allowlist auth only; cost scaled with concurrent rooms; EU data residency was questionable; and a SIP signalling gap caused the dual-tenant carrier-attribution bug (#866).

Decision

The LiveKit project is forked under infrastructure/forks/orbit-media-* and self-hosted as the orbit-media-eu Helm release in the devotel-voice-edge cluster, namespace devotel-rtc-eu. SIP URI: sip:<orbit-media-sip-internal-svc> (internal cluster address; not published externally).

Reason

Cost, EU data residency, and the ability to fix SIP routing (jambonz cross-namespace ClusterIP). The LiveKit Cloud trunk becomes decommissionable after a ~24h soak.

Consequences

  • Operational ownership of SFU upgrades.
  • Per-region scaling required when the US region comes online.
  • Chart drift hazard: sip-service.yaml required UDP/5060 port not exposed by initial values (see B2.1 fix).
  • DEVOTEL_LIVEKIT_SIP_URI retained as fallback for one deploy cycle.

Source memos

  • [[decision_orbit_media_sip_uri_2026_05_16]]
  • [[provider_livekit]]
  • [[jambonz_orbit_media_carrier_attribution_2026_05_16]]
  • [[wave_b2_1_orbit_media_sip_service_port_2026_05_16]]
  • known_issues.md § legacy LK trunk