|Technical

What a Session Border Controller Does (and Whether You Need One)

A session border controller sits between your phone system and the internet. What SBCs actually do, how they differ from SIP ALG, and who really needs one.

Ask five VoIP engineers what a session border controller is and you will get five overlapping but different answers: it's a firewall for SIP, it's a NAT fixer, it's a protocol translator, it's a demarcation point. All of them are right, because an SBC is a bundle of functions that all happen to live at the same place in the network — the border, where your voice traffic meets someone else's.

The name is unhelpfully abstract, so here is the concrete version. An SBC is a back-to-back user agent (B2BUA) that sits between two networks and terminates every SIP session on one side, then originates a brand-new session on the other. Nothing passes through untouched. Signaling is rebuilt, media is relayed, and the SBC owns the state of every call crossing it. Every other SBC feature falls out of that one architectural decision.

This post covers what those features actually are, why an SBC is categorically different from a firewall with SIP ALG switched on, and — the question most people are really asking — whether your deployment needs one at all.

The six jobs of an SBC

Topology hiding

Because the SBC terminates and re-originates every session, the outside world only ever sees the SBC. Your PBX's private IP, your internal extension numbering, your Via and Record-Route header chains, the SDP addresses of your phones — none of it leaks past the border. The SBC rewrites all of it.

This matters for two reasons. Security is the obvious one: attackers who can't see your internal topology can't target it directly, and reconnaissance scans hit a hardened purpose-built device instead of your PBX. The less obvious reason is operational: your carrier sees one stable, predictable signaling peer no matter how much you rearrange things behind it. Replace the PBX, renumber the LAN, move to a new SIP platform — the trunk configuration on the carrier side never changes.

NAT traversal, done properly

SIP was designed in an era before NAT was everywhere, and it embeds IP addresses in message bodies where NAT devices can't see or rewrite them. The result is the classic family of symptoms — registrations that mysteriously expire, calls that connect with no audio — covered in detail in our guide to SIP and NAT traversal.

An SBC solves this from the far end, which is the only place it can be solved reliably. When a phone behind NAT registers through an SBC, the SBC notices that the addresses inside the SIP message don't match the addresses the packets actually arrived from, and it simply uses the real ones. For media, it does the same thing with RTP latching: rather than trusting the address advertised in the SDP, it waits for the first RTP packet to arrive and locks onto that source. It also keeps NAT pinholes alive, typically by forcing short registration intervals toward the outside while caching registrations so your PBX or softswitch isn't hammered with a re-REGISTER every 30 seconds.

No STUN configuration on every endpoint, no guessing at router keepalive behavior, no per-device workarounds. The border device absorbs the problem.

Protocol normalization and interop

SIP is a standard the way English is a standard: everyone speaks it, nobody speaks it identically. One vendor sends DTMF as RFC 2833 telephone-events, another expects SIP INFO. One PBX requires a session timer refresh via UPDATE, the carrier only supports re-INVITE. Headers arrive in unexpected order, with nonstandard parameters, or subtly malformed in ways that one stack tolerates and another rejects.

An SBC sits in the middle and translates. Header manipulation rules rewrite, insert, and strip whatever each side needs to see. Transport interworking converts between UDP, TCP, and TLS — so your carrier can require encrypted signaling while your legacy PBX only speaks UDP. DTMF interworking converts between signaling methods. When you swap carriers or upgrade the PBX, interop problems get fixed with a rule on the SBC instead of a firmware ticket with a vendor.

A security boundary that understands SIP

A conventional firewall sees SIP as UDP packets on port 5060. It can allow them or block them, and that is roughly the extent of its insight. An SBC parses every message and makes decisions at the SIP layer, which changes what kinds of attacks it can absorb.

Anything exposing SIP to the public internet gets scanned continuously — SIPVicious and its descendants probe for open PBXs around the clock, looking for extensions to brute-force and trunks to pump fraudulent traffic through. An SBC recognizes scanner signatures and drops them silently. It rate-limits registration attempts per source and dynamically blacklists addresses that fail authentication repeatedly, which blunts both credential stuffing and registration floods. It rejects malformed messages that might crash or exploit a softer SIP stack behind it. And it can terminate TLS and SRTP at the edge, giving you encrypted trunks without requiring every internal element to support them.

None of this replaces the basics — strong SIP credentials, sane dial plan permissions, and toll fraud limits still matter, as covered in SIP authentication and security. The SBC is the layer that keeps the flood outside so those inner defenses are rarely tested.

Transcoding

When the two sides of a call can't agree on a codec, the SBC can convert between them in real time: G.711 on the LAN, G.729 across a constrained WAN link, or Opus toward a WebRTC gateway. On hardware SBCs this runs on dedicated DSP resources; on software SBCs it consumes CPU, and it is usually the single biggest factor in how many concurrent sessions a given box can handle. Transcoding also adds a few milliseconds of latency and a lossy re-encode per conversion, so the best transcoding strategy is to configure codec priorities so it rarely happens — but when an endpoint and a carrier genuinely have no codec in common, the SBC is what keeps the call from failing outright.

Call admission control

An SBC counts sessions and enforces limits: per trunk, per peer, per direction, or by estimated bandwidth. If your internet connection comfortably carries 30 concurrent G.711 calls, the SBC can cap sessions at 30 so call number 31 gets rejected cleanly with a busy signal — instead of being admitted and degrading the audio of all 31 calls at once. It protects the PBX the same way, absorbing bursts that would otherwise overload the softswitch behind it. Rejecting one call politely beats degrading every call silently.

An SBC is not a firewall with SIP ALG

It is tempting to file the SBC next to the SIP ALG feature on your router, since both claim to "handle SIP through NAT." Resist the temptation. They are opposite philosophies.

SIP ALG is a passthrough hack: the firewall snoops on packets in transit and rewrites the addresses it believes it understands. In practice, ALG implementations are chronically buggy — they rewrite the wrong fields, mangle authenticated messages, break when SIP arrives over TCP or TLS, and can't be debugged because they modify traffic invisibly. The predictable results are dropped registrations, failed transfers, and one-way audio. We have written about this at length in SIP ALG: the setting that breaks everything, along with a router-by-router guide to disabling it.

An SBC is the purpose-built version of what ALG gestures at. As a B2BUA, it doesn't rewrite packets in flight — it terminates the session, holds complete state, and generates a fresh, correct session on the other side. It is a full SIP endpoint with a real parser, maintained by a vendor whose entire product lives or dies on SIP correctness, not a checkbox feature bolted onto a firewall by a team that ships routers.

So the practical rule: SIP ALG should be off, essentially always. An SBC should be deployed when the situation actually calls for one — which brings us to the real question.

Do you actually need one?

Hosted VoIP seats: usually no

If your phones register directly to a hosted provider — RingCentral, Zoom Phone, a hosted PBX, any cloud platform — the provider already operates carrier-grade SBCs at their edge, and your handsets are designed to register through NAT to them. Adding your own SBC on-site mostly adds cost and another thing to misconfigure.

Your responsibilities in this model are local network hygiene: SIP ALG disabled, NAT UDP timeouts that outlast registration intervals, and QoS on your uplink. Get those right and hosted seats behind a competent provider just work. A large multi-site enterprise might still put SBCs in front of hosted service for survivability or policy enforcement, but that is the exception.

SIP trunking into an on-prem PBX: often yes

The calculus flips when you run SIP trunks into a PBX you operate. Now your PBX is the network edge. It terminates carrier signaling directly, it is exposed to whatever the internet sends at port 5060, and every interop quirk between the carrier's SIP dialect and your PBX's becomes your problem to solve inside PBX config files.

An SBC in front of that PBX gives you the security boundary, the topology hiding, the interop layer, and clean NAT handling in one demarcation point. It is also frequently mandatory rather than optional: Microsoft Teams Direct Routing, for instance, requires a certified SBC between your trunks and Teams — there is no supported way around it. For a small office with a single trunk and a well-patched PBX behind a strict firewall, you can operate without one and many do. But the more trunks, carriers, and inbound call volume you have, the faster the SBC pays for itself in avoided fraud and avoided 2 a.m. interop debugging.

Enterprises and carriers: always

Any organization interconnecting with multiple carriers, running its own softswitch infrastructure, selling voice service, or peering SIP with other organizations deploys SBCs as a matter of course. At that scale the SBC is not a nice-to-have; it is the interconnect architecture. Nobody exposes a softswitch directly to a peer's network.

Hardware, software, or SBCaaS

Hardware appliances — AudioCodes, Ribbon, Oracle (the former Acme Packet line), and Cisco's CUBE running on router platforms are the names you will encounter most. Dedicated DSPs make them the strongest option for heavy transcoding, and carriers still buy chassis-based systems for interconnects. Rough cost: entry units for a small trunk start in the low four figures; carrier-grade platforms run into six figures.

Software SBCs — the same vendors ship their SBCs as virtual machines or containers, typically licensed per concurrent session, from hundreds to a few thousand dollars at small scale. On the open-source side, Kamailio or OpenSIPS paired with RTPengine can be assembled into most of an SBC's function set for nothing but engineering time — a legitimate path if you have SIP expertise in-house, and a trap if you don't, because you become the vendor.

SBCaaS — cloud-hosted SBC capacity billed per session per month, a category that grew rapidly on the back of Teams Direct Routing. No hardware, no patching, fast deployment, and the economics usually win below a few dozen concurrent sessions. The tradeoff is that your media now hairpins through the provider's cloud region, which adds a network leg to every call.

Whichever path you take, test the path

An SBC adds a hop to your signaling and — because it relays or transcodes media — a hop to your audio as well. A misconfigured SBC can introduce the very problems it exists to solve: added latency from a badly placed cloud region, jitter from an undersized VM, clipped audio from an overloaded transcoding pool.

So treat the SBC path like any other network path: measure it. Run a VoIP quality test from behind the SBC before cutover and again after, and compare latency, jitter, and packet loss. If the numbers degrade meaningfully after inserting the SBC, something in its sizing or placement is wrong — and it is far cheaper to find that during deployment than during your busiest calling hour.

For the network problems an SBC exists to solve, start with SIP and NAT traversal and SIP ALG: the setting that breaks everything. For securing the SIP layer itself, see SIP authentication and security.

Frequently Asked Questions

What does a session border controller actually do?+

An SBC sits at the edge of a VoIP network and terminates every SIP session before re-originating it on the other side. In the process it hides your internal network topology, fixes NAT traversal properly, normalizes SIP dialect differences between vendors, enforces a SIP-aware security boundary, transcodes between codecs when needed, and limits concurrent sessions so a traffic spike cannot flatten your PBX or your bandwidth.

Is a session border controller the same as SIP ALG on a firewall?+

No. SIP ALG inspects packets in flight and rewrites addresses it thinks it understands, which frequently corrupts signaling and causes problems like one-way audio and dropped registrations. An SBC is a back-to-back user agent: it fully terminates each session, owns the state, and re-originates a clean session on the other side. SIP ALG is a shortcut that guesses; an SBC is a purpose-built element that knows.

Do I need an SBC for hosted VoIP?+

Usually not. With hosted seats, your provider runs SBCs at their edge and your phones register straight to them. Your job is a clean local network: SIP ALG disabled, sensible NAT timeouts, and QoS. An SBC becomes worth considering when you run SIP trunks into an on-premises PBX, because at that point your PBX is the network edge.

How much does a session border controller cost?+

Rough tiers: an open-source software build costs nothing but engineering time and gives you SBC-like function rather than a certified product. Commercial software SBCs are typically licensed per concurrent session, from hundreds to a few thousand dollars for small deployments. Entry hardware appliances for a small trunk start in the low four figures, while carrier-grade chassis run into six figures. SBCaaS is priced per session per month, which usually wins for small session counts.

sbcsession-border-controllersip-trunkingvoip-securitynat-traversalsip

Share

Opens your messaging app. We do not collect or store any phone numbers.
Opens your email client. We do not collect or store any email addresses through sharing.

Want to know when we publish new articles? Sign up for updates