adlee-was-taken d3bd621aa0 Initial scoping: architecture + Asterisk→Rust port plan
Establish rutster — a memory-safe, API-first, security-first telephony
platform; spiritual successor to Asterisk for the WebRTC/microservices era.

- README: project framing, design pillars, open decisions
- docs/ARCHITECTURE.md: three-plane (control/media/app) model
- docs/PORT_PLAN.md: every Asterisk subsystem mapped to a disposition
  (core / WASM-plugin / service / edge-FFI / dropped / replaced) with rationale

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C2bfD7MkqEdfnMXxXBu456
2026-06-26 21:38:45 -04:00

Rutster

A memory-safe, API-first, security-first telephony platform — a spiritual successor to Asterisk for the WebRTC/microservices era, written in Rust.

Not a port of Asterisk. A reimagining that keeps the power — era-bridging breadth, "wire anything to anything," a deep feature library — while dropping the legacy hardware/dead-protocol half and fixing Asterisk's two chronic wounds: memory-safety CVEs and toll fraud, at the design level.

What it is / isn't

  • Is: SIP (TLS-only) + WebRTC signaling, a real-time media plane (transcode / mix / DSP), a programmable call model exposed as a REST/gRPC API + event stream, a WASM-sandboxed plugin runtime, and a library of telephony features delivered as isolated services.
  • Isn't: A TDM/PSTN-hardware PBX. No DAHDI, no Sangoma/Digium cards, no ISDN/SS7, no IAX2/H.323/SCCP/MGCP/Unistim. PSTN reach is via SIP trunks / SBC only.

Core design pillars

  1. Memory-safe by construction — Rust everywhere on the hot path; fuzzed, sans-IO protocol parsers. Eliminates the buffer-overflow/RCE CVE class.
  2. Isolation over in-process modules — extensions run in a WASM sandbox, not as .so files in the daemon's address space. One bad plugin can't crash the box or read another tenant's media. (The Asterisk core show locks era ends here.)
  3. Secure & deny-by-default — mandatory TLS/SRTP, deny-by-default routing, built-in toll-fraud controls, mTLS gRPC admin (no plaintext AMI), hard multi-tenancy.
  4. Three planes, scaled independently — control / media / app. The media datapath stays tight; business logic is microservices and plugins around it.
  5. Observable & declarative — OpenTelemetry call traces across services; config-as-data, not imperative .conf files edited on a box.

Layout

  • docs/ARCHITECTURE.md — the three-plane model and pillars.
  • docs/PORT_PLAN.mdthe spine: every Asterisk subsystem mapped to a disposition (core / plugin / service / edge-FFI / dropped) with rationale.

Status

Scoping. No code yet — the port plan defines the crate/service boundaries that the workspace will be scaffolded from next.

Open decisions

  • License — undecided (Asterisk is GPLv2+commercial; rutster's model is TBD).
  • SIP stack — FFI to pjproject vs. front with an SBC (Kamailio/drachtio) vs. a long-term pure-Rust stack. See port plan §1.
  • WASM runtimewasmtime is the presumptive default (component model).
Description
Terribly-named "spiritual" ancestor to the niche Asterisk PBX filled in 2005, but for AI-first call centers in 2026
Readme 3.8 MiB
Languages
Rust 99.5%
HTML 0.5%