SBC Overview

The RustPBX SBC (Session Border Controller) module provides enterprise-grade SIP border control capabilities for carrier interconnection, security protection, and traffic management.

Core Capabilities

As a SIP network border device, the SBC provides the following core capabilities:

CapabilityDescription
Topology HidingHides internal network topology, exposing only the SBC address externally
Security ProtectionDoS protection, IP allow/block lists, rate limiting
Media ControlMedia proxy mode selection, codec transcoding policy
Trunk ManagementTrunk health checks, CAC (Call Admission Control)
Header ManipulationSIP Header add/remove/modify
JSON-RPC RoutingDynamically determine call routing via external HTTP API

Architecture

External Carrier            SBC                 Internal PBX
    │                        │                        │
    │──── SIP INVITE ────►  │                        │
    │                        │── Match Rules ──►     │
    │                        │  ACL / JSON-RPC        │
    │                        │── Number Rewrite ──►  │
    │                        │  Header Manipulation   │
    │                        │── Media Proxy ──►     │
    │                        │                        │
    │◄─── SIP 200 OK ─────│◄────── 200 OK ────────│
    │                        │                        │
    │◄═════ RTP ═════════►│◄════ RTP ══════════►│

The SBC module is compiled into the RustPBX core as addon-sbc and injects SBC logic into the call processing pipeline via DialplanInspector.

Enable SBC

[proxy]
addons = ["sbc"]

Once SBC is enabled, a SBC entry appears in the console sidebar, containing four pages: Dashboard, Trunks, Routes, and Validation.

Database Requirements

The SBC reuses the core RustPBX database tables (sip_trunk, routing) and requires no additional migrations. SBC-specific metadata is stored in the sip_trunk.metadata.sbc JSON field.

SQLite / MySQL / PostgreSQL are supported.