# NGSBC – Session Border Controller für Telefone und TK-Anlagen | NGsipStack

> NGSBC ist der Session Border Controller von NGsipStack: Registrar, B2BUA, TLS, WebRTC, Anrufwege, Weitervermitteln, Parken und Besetztlampen in einem Rust-Programm.

Quelle: https://ngstack.de/ngsbc

NGSBC · Die Telefonanlage für Ihre Kunden

# NGSBC – Registrar + B2BUA, eigener SIP-Stack in Rust

Registrar und B2BUA in einem Programm, Medien über NGMedia oder rtpengine (ng-Protokoll), Konten und Richtlinien direkt aus der zentralen Datenbank. UDP, TCP, TLS, WSS.

**Büro, Homeoffice, Handy**

**Schutz** eingebaut

**Live** seit 03.10.2026

## Funktionen

| Bereich | Stand | Details |
|---|---|---|
| Registrar | ja | Digest (RFC 2617) mit und ohne `qop`, Einmal-Nonces, keine Auskunft über vorhandene Konten; jeder Anruf verlangt eine Anmeldung, der Anrufer kommt aus der Anmeldung |
| Transporte | ja | UDP, TCP, TLS, WS/WSS; Zustellung über die bestehende Verbindung des Geräts (NAT-tauglich) |
| B2BUA | ja | zwei Dialoge je Anruf, Ablehnungen durchgereicht, frühe Medien (183+SDP) über das Relais, Parallelruf mit CANCEL an die Verlierer |
| Anrufwege | ja | Regeln (Anrufer-Muster, Zeitplan), Umleitungen (immer, nicht angemeldet, besetzt, keine Antwort, Zeitplan; 3 Stufen, Schleifenschutz), Klingelgruppen, Busy-on-Busy (`maxGespraeche`) |
| Transfer | ja | REFER blind (RFC 3515) und begleitet (`Replaces`), aus A- und B-Dialog |
| Session-Timer | ja | RFC 4028 (refresher=uac, 422 mit Min-SE), UPDATE und re-INVITE, Halten im Netz statt re-INVITE zum Carrier |
| Ereignisse | ja | dialog (RFC 4235, Besetztlampen), message-summary (RFC 3842, auch ohne Abo), MESSAGE (RFC 3428) |
| Wiederherstellen | ja | Abriss TCP/TLS/WS + keine Medien → Hinweiston aus dem Relais, Rückkehr per INVITE+`Replaces`, Frist 60 s |
| Amt | ja | E.164 mit `user=phone`, PAI, CLIR per `*31#`/`#31#`, Notruf `Privacy: none`, Trunk-REGISTER (GIN, RFC 6140), Routing nach OpenSIPS-Tabellen (drouting, seriell bei 408/5xx) |
| Richtlinien | ja | Wahlplan mit Ortsnetz, Sperrlisten, interne Rufe, Rufnummernanzeige je Konto |
| Grenzen | ja | Kanäle ein/aus, CPS, Tageskosten mit Taktung je Kunde; Notruf und intern nie begrenzt |
| Schutz | ja | eingebaute Sperre gegen Passwort-Raten und Fluten, Topologie-Schutz, fail2ban-kompatibles Sicherheitsprotokoll |
| Hot-Standby | ja | laufende Gespräche und Anmeldungen verschlüsselt zum Partner gespiegelt |
| 100rel/PRACK als UAS | geplant | `Require: 100rel` → 420 mit `Unsupported` (Unterstützung als UAS in Arbeit) |
| INFO im Dialog | geplant | wird nicht zum anderen Bein gereicht (geplant) |
| 3xx, 181, Outbound/GRUU, presence | geplant | geplant bzw. nach Bedarf |
| Neustart | in Arbeit | UDP-Anmeldungen werden übernommen; TCP/TLS/WS-Geräte melden sich selbst neu an – schnellere Übernahme in Arbeit |
| Übernahme | in Arbeit | laufende Gespräche bleiben erhalten; Übernahme auch für Gespräche im Aufbau in Arbeit |

## Prüfung

| Was | Ergebnis |
|---|---|
| Unit-Tests | 151/151 |
| Prüfkette `alle-pruefungen.sh` | 42/42 Läufe (Registrar, B2BUA, Amt, Eingang, REFER, Timer, TLS/WS, Bremse, Datenbank-Abgleich …) |
| Last | Leerlauf 7 MB; 200 Anrufe/s = 21 % eines Kerns, 34 MB; Dauerlauf 96 000 Anrufe, Speicher stabil bei 38 MB |

**Status:** Live seit 03.10.2026; die Rolle `carrier` desselben Programms seit 30.09.2026 (NGCSBC). Kunden wechseln einzeln und ohne Stichtag, gesteuert über die Weiche im NGCSBC.
