Die CodeB-SIP-Bridge sitzt zwischen der WebRTC-Seite (Opus über SRTP-DTLS) und der SIP-Seite (G.711 über klassisches UDP) und transkodiert im Lauf. Ihre SIP-Trunk-Zugangsdaten, Fraud-Kontrollen und Anrufprotokolle bleiben auf Ihrem eigenen Windows-Host — CodeB sieht und vermittelt Ihren PSTN-Verkehr nie.
Signaling / SteuerungRTP-Medien (auf der Bridge transkodiert)
Der Browser öffnet eine normale WebRTC-PeerConnection zur SIP-Bridge. Audio läuft auf Opus mit 48 kHz innerhalb von SRTP über DTLS. Die Verbindung ist identisch zu einem Browser-zu-Browser-CodeB-Meeting — die Bridge ist einfach der „andere Peer".
Bridge
02 / Transkodierung
Opus ↔ G.711, im Prozess
Die SIP-Bridge ist ein Windows-Dienst, der auf SIPSorcery aufsetzt. Sie dekodiert Opus, resamplet 48 kHz ↔ 8 kHz und kodiert dann µ-law oder A-law für die SIP-Seite. Derselbe Prozess besitzt den SIP-UDP-Listener (Standard-Port 5060) und den Public-Listener-Kanal für eingehende Anrufe.
SIP-Seite
03 / Klassisches SIP/RTP
Ihr Trunk, Ihre Nummern
Ausgehende PSTN-Anrufe gehen per SIP-INVITE gegen Ihre registrierten Trunks. Eingehende DIDs landen auf demselben Trunk. RTP zwischen Bridge und Trunk ist klassisches UDP-G.711 — die Verschlüsselungs-Posture der SIP-Seite hängt davon ab, was Ihr Carrier unterstützt.
Was Sie betreiben vs. was wir betreiben
CodeB Conference liefert die Bridge als Teil der Installation aus. Sie betreiben den SIP-Trunk — wir sehen, vermitteln oder transportieren Ihren PSTN-Verkehr nie. Die Bridge verbindet sich mit Ihren Trunk-Zugangsdaten auf Ihrem Windows-Host hinter Ihrer Firewall:
SIP-REGISTER-Zugangsdaten liegen in App_Data/<tenant>/appsettings.json auf Ihrer IIS-Box.
CDRs (Call Detail Records) werden nach App_Data/<tenant>/cdr/ geschrieben und auf der Admin-Seite cdr.html sichtbar — verlassen den Host nie.
Wähl-Logs, Inbound-Logs und Trunk-Registrierungs-Logs bleiben auf der Platte Ihrer Maschine.
Fraud- und Missbrauchs-Kontrollen
Die Bridge setzt drei Sperren vor jeder PSTN-Ausgabe durch:
Whitelist — eine explizite Liste wählbarer Nummern pro Mandant. Unbekannte Ziele werden mit 403 not-in-whitelist beim Admit abgelehnt.
FraudGuard — Zähler pro Nutzer / pro Trunk / global mit Sliding-Window-Limit. Hält ein durchgegangenes Skript davon ab, ein Trunk-Guthaben leer zu räumen.
Routing-Regeln — länderbewusste Allow-Liste (z. B. „nur EU") plus Trunk-Priorität und Parallel-Anruf-Limits.
Eingehende Anrufe bekommen die symmetrische Behandlung: ein Rate-Limit pro Quell-IP auf dem öffentlichen SIP-Listener, optional REGISTER-Pflicht (Standard an) und SIP-Digest-Authentifizierung gegen denselben Credential-Store wie der OIDC-IdP — eine Anmeldung, drei Dienste.
Pfade für eingehende Anrufe
Ein Anruf in die andere Richtung — ein externes SIP-Telefon wählt eine CodeB-Nummer — nimmt innerhalb der Bridge einen von drei Wegen:
Klingelt das CodeB Webphone — das angemeldete CodeB-Webphone-PWA bekommt einen Ring-Frame über seinen WebSocket. Annehmen → die Bridge verteilt die INVITE per Parallel-Fork an alle registrierten SIP-Softphones.
Trifft eine virtuelle Nummer — das Wählmuster passt zu einer KI-Empfangs-Regel; der Anruf geht stattdessen auf den Virtual-Agent-Pfad.
Public-Listener-URI — r_<raum>@phone.codeb.io setzt einen SIP-Anrufer direkt in einen WebRTC-Raum; user@phone.codeb.io klingelt die registrierten Softphones dieses Nutzers.
Was der Server sieht und was nicht
Der signal.ashx-WebSocket trägt ausschließlich Steuer-Frames (Wähl-Anfragen, Ring-Frames, Annehmen/Ablehnen). Medien laufen nie über signal.ashx. Die Bridge ist das einzige Stück, das jemals entschlüsselte PCM-Samples im Speicher hält — für die Millisekunden, die das Transkodieren und Weiterleiten dauern. Nichts wird auf Platte gepuffert, es sei denn, Sie haben SaveTranscripts für eine KI-Empfangs-Regel eingeschaltet (und selbst dann nur der Text dieser einen vnum, nie rohes Audio).