What Is SIP ALG and Why You Should Disable It

A clean blue signal beam passing through a router and emerging corrupted in red, representing how SIP ALG corrupts VoIP signaling and causes call quality problems on business networks

You set up a new VoIP phone, it registers fine, and the first test call connects. Then the audio is one-way, or the call drops at exactly thirty seconds, or the phone shows “No Service” an hour later for no reason anyone can find. You check the SIP provider, the credentials, the codecs, the firewall rules, and everything looks correct. The fault is almost never in any of those places. It is a single setting on the router in front of the phone, enabled by default, called SIP ALG.

SIP ALG (Application Layer Gateway) is a feature built into most consumer and small-business routers that inspects SIP traffic as it passes through and rewrites parts of it. The intention is to help VoIP work across Network Address Translation. In practice it is the most common cause of unexplained VoIP faults on business networks, and the standard recommendation across the industry is to turn it off. In the sections below, we’ll walk through what SIP ALG is trying to do, why it corrupts SIP instead of helping, how to recognize and confirm the symptoms, how to disable it on common routers, and what handles the underlying problem correctly once it is gone.

Key Terms and Concepts
A quick-reference glossary for terms used throughout this article.
SIP ALG (Application Layer Gateway)A router or firewall feature that inspects SIP messages passing through it and rewrites addresses inside them to assist VoIP traffic across NAT. It is enabled by default on most consumer and small-business routers and is the most frequent cause of unexplained VoIP problems.
NAT (Network Address Translation)The function that lets many devices on a private network share one public IP address. The router rewrites IP addresses and ports in packet headers as traffic crosses between the private and public sides.
SDP (Session Description Protocol)The block carried inside SIP messages that describes the media session, including the IP address and port where each side expects to receive audio. If the address in the SDP is wrong, audio does not arrive.
REGISTERThe SIP message a phone sends to tell its provider where it can be reached. Registrations expire and must be refreshed; the Contact header inside the REGISTER tells the provider which address and port to send incoming calls to.
Contact headerThe SIP header that advertises the address and port where a device can be reached directly for the rest of a dialog. NAT and ALG handling of this header determines whether inbound calls and in-dialog requests reach the phone.
Via headerThe SIP header that records the path a request took so responses can find their way back. A rewritten or inconsistent Via address sends responses to the wrong place.
Far-end NATThe situation where a SIP endpoint sits behind a NAT router that the service provider cannot control, so the provider has to detect the real public address the traffic is actually coming from rather than trusting what the SIP message claims.
B2BUA (Back-to-Back User Agent)A device that terminates an incoming SIP dialog and originates a new, independent one toward the other side. This gives it deterministic control over signaling and allows media handling to be applied independently on each leg, rather than guessing at a rewrite in transit.
Media anchoringA technique where a device at the network edge forces the audio (RTP) to flow through itself and presents its own public address in the SDP, so media reaches a known, reachable point instead of an unreachable private address.
Session Border Controller (SBC)A device at the border between two SIP networks that controls signaling and media on each side independently. It performs the NAT, SDP, and header handling that SIP ALG attempts, but as a designed function rather than a transparent guess.

What SIP ALG Actually Does

To understand why SIP ALG causes problems, start with the problem it was built to solve. SIP carries IP addresses and ports inside the message body, not only in the packet headers, which follows from how the SIP standard (RFC 3261) and the SDP payload describe a session. A phone on a private network (for example 192.168.1.50) writes that private address into its SIP signaling and into the SDP that describes where it wants to receive audio. When the router performs NAT and sends the packet out to the public internet, it rewrites the IP header so the source looks like the router’s public address. The private address buried inside the SIP message is left untouched, because ordinary NAT only edits packet headers, not payloads.

The result is a SIP message that tells the far side to send signaling and audio to 192.168.1.50, an address that means nothing on the public internet. Replies and audio go nowhere. SIP ALG was created to patch this gap. It reads inside the SIP message as it passes through the router, finds the private addresses in the headers and the SDP, and rewrites them to the router’s public address so the far side has somewhere reachable to reply to. On paper it is a reasonable idea, and it is why router vendors ship it enabled by default: it lets a single VoIP phone behind a basic router work without any extra configuration.

The trouble is that doing this correctly requires fully and consistently parsing SIP, a protocol with many message types, optional headers, line folding, compact header forms, and vendor variations. Consumer router firmware does a fast, shallow version of that parsing, and that is where it falls apart.

Why SIP ALG Breaks SIP

SIP ALG fails not because rewriting addresses is the wrong idea, but because the implementations do it incompletely and inconsistently. A few distinct failure modes show up again and again.

Incomplete and Inconsistent Address Rewrites

An ALG that rewrites the address in one header but misses it in another leaves the SIP dialog describing two different return paths. The Via header might be corrected while the Contact header is not, or the signaling address is fixed while the SDP media address is missed. The two sides of the call then disagree about where packets should go, and the symptoms depend on which header was mangled.

Mangled SDP and One-Way or No Audio

The SDP carries the address and port where each side expects to receive RTP audio. When an ALG rewrites the SDP address incorrectly, or rewrites the signaling but not the SDP, the call connects and the phones ring, but the audio has nowhere valid to go. This produces the classic one-way audio fault, where one party can hear and the other cannot, or calls that connect with complete silence. The same family of symptoms is covered from the operator side in the VoIP troubleshooting guide.

Broken Registration and Contact Rewriting

When a phone registers, the Contact header tells the provider where to send incoming calls. An ALG that rewrites the Contact address inconsistently, or that loses track of the registration when it rewrites the expiry handling, causes registrations to fail or to lapse silently. The phone shows “No Service,” inbound calls never ring because the provider is sending them to an address that no longer works, and registrations recover and break on a cycle that looks random from the outside.

Calls That Drop After About Thirty Seconds

A call that sets up cleanly and then drops at a consistent interval, often around thirty seconds, is a signature of mangled in-dialog signaling. The session refresh or the acknowledgment that should keep the call alive is sent to an address the ALG rewrote incorrectly, so it never arrives and one side tears the call down.

Encrypted SIP Makes It Pointless and Harmful

When SIP signaling is protected with TLS, the router cannot read the message body at all, so the ALG has nothing to inspect or rewrite. At best it provides no useful signaling assistance; at worst it interferes with NAT handling or session state in ways that disrupt the call. Any deployment using TLS and SRTP, which includes Microsoft Teams Direct Routing and most modern carrier interconnects, gains nothing from SIP ALG and only inherits its side effects.

The underlying issue: SIP ALG modifies live signaling in transit based on a shallow parse of the protocol. When the parse is wrong, the message is corrupted rather than corrected, and a feature meant to help VoIP becomes the thing breaking it.

Symptoms That Point to SIP ALG

SIP ALG rarely announces itself. It presents as a collection of intermittent, hard-to-reproduce faults that survive every change you make to the phone, the provider, and the credentials. The following symptoms, especially in combination, point strongly at an ALG sitting in the path:

  • One-way audio where one party can hear the other but not the reverse, or calls that connect to silence.
  • Calls dropping at a consistent interval, frequently around thirty seconds, after a clean setup.
  • Registration failures where phones show “No Service” or cycle between registered and offline with no pattern.
  • Inbound calls not ringing while outbound calls work, because the provider cannot reach the address the ALG advertised.
  • Broken call transfer, hold, or DTMF, where mid-call signaling that changes the session is the part being corrupted.
  • Faults that move with the router, where the same phones and provider work fine on a different network.
Standard first step: When VoIP behaves strangely on a network you do not fully control, disabling SIP ALG on the router is the first thing experienced voice engineers try, before changing anything on the phone or the provider side.

How to Confirm SIP ALG Is the Culprit

Because the symptoms overlap with ordinary NAT and firewall faults, it is worth confirming SIP ALG specifically rather than disabling settings at random. The reliable method is to compare the SIP messages on each side of the router. Capture the SIP traffic as the phone sends it on the private side, then capture the same messages as they leave the router on the public side, and compare the Contact, Via, and SDP addresses.

If the addresses inside the message have been changed between the two captures, and changed in a way that is inconsistent or points at an unreachable address, an ALG is rewriting the traffic. A clean NAT device leaves the SIP payload alone and only rewrites packet headers. Reading these captures is a skill in itself, and the same technique localizes most signaling faults, not just ALG behavior. For the operator-side toolkit covering call trace and packet capture, the VoIP troubleshooting guide walks through the diagnostic process.

How to Disable SIP ALG

SIP ALG hides under different names on different equipment, which is part of why it is so often missed. Depending on the vendor it appears as SIP ALG, SIP Transformations, SIP Helper, SIP Inspection, VoIP passthrough, or an SIP entry in a NAT or application-layer settings page. On Linux-based gateways it is the nf_conntrack_sip connection-tracking helper. The table below covers where to find it on common platforms.

Platform Where the setting lives
Cisco ASA SIP inspection is on by default in the global policy. Disable it in the CLI: under policy-map global_policy, class inspection_default, enter no inspect sip, then save.
Fortinet FortiGate Disabled through the CLI rather than a single GUI toggle; the SIP session helper and the VoIP profile both have to be addressed. Apply each CLI step in order.
Netgear In the router web interface under the WAN or advanced settings. If the option is missing on an older model, update the firmware first, then disable it.
TP-Link On Deco mesh systems, open the Deco app and go to More, Advanced, NAT Forwarding, SIP ALG, then turn it off. On standard models it sits under NAT or forwarding settings.
DrayTek Under the SIP ALG or VoIP NAT settings in the web interface; disable the ALG and confirm no SIP-aware NAT helper remains enabled.
pfSense / OPNsense Neither ships an SIP ALG, so there is nothing to disable. VoIP faults behind these firewalls are ordinary NAT issues, not ALG corruption.

After disabling SIP ALG, reboot the router if the change does not take effect immediately, re-register the phones, and place test calls in both directions to confirm two-way audio and that the call holds past the interval where it used to drop. If symptoms persist, the cause is a separate NAT or firewall issue rather than the ALG.

Check before you assume: The exact menu path changes between firmware versions even within one vendor. If you cannot find the setting by name, search the admin interface for “SIP,” “ALG,” “VoIP,” or “transformations,” and check for firmware updates that expose the option.

When Disabling SIP ALG Is Not Enough

Turning off SIP ALG removes the thing corrupting your signaling, but it does not make the original NAT problem disappear. The private addresses inside SIP messages still need to be reconciled with the public addresses the far side actually sees. For a single phone behind a basic router, the phone’s own NAT keep-alive and the provider’s far-end NAT detection usually close that gap once the ALG is out of the way. At the scale of a carrier, an MSP, or any provider terminating SIP trunks from many networks it does not control, the NAT problem has to be solved deliberately at the network edge rather than left to a router’s best guess.

This is the role a Session Border Controller (SBC) plays. An SBC sits at the border between networks and handles signaling and media on each side as a designed function. Because it operates as a back-to-back user agent, it terminates the inbound signaling dialog and originates a new one toward the far side, so it controls every address in every header on both legs deterministically instead of editing a packet in transit. It performs far-end NAT detection on the addresses traffic is genuinely arriving from, anchors the media so audio flows to its own reachable public address, and applies SIP header manipulation as configured rules rather than a fixed guess. That is the difference between a router ALG and an SBC: the same category of work, done as deliberate signaling control instead of an opaque rewrite. For how this fits the broader picture of why a firewall ALG is not a substitute for an SBC, see the deeper comparison in the guide to SBC security.

Frequently Asked Questions

Is SIP ALG ever useful?

For a single softphone or VoIP phone behind a basic home router, a well-behaved ALG can occasionally let it work without any other configuration. In practice the implementations are unreliable enough that the risk of corruption outweighs the convenience, which is why the standard advice is to disable it and let the phone or the upstream network handle NAT instead.

Will disabling SIP ALG expose my network to attacks?

No. SIP ALG is a NAT helper, not a security control. Disabling it does not open ports or remove firewall protection; the router still filters traffic exactly as before. Security for SIP belongs at a device built for it, not at a consumer ALG.

Does an SBC replace SIP ALG?

An SBC performs the functions SIP ALG attempts, but as explicit signaling and media policy rather than packet rewriting in transit. It handles NAT traversal, media anchoring, and SIP address rewriting as deterministic functions on each call leg. When an SBC is in the path, SIP ALG on any router in front of it should be disabled so the two are not both trying to rewrite the same traffic.

Why is SIP ALG enabled by default if it causes problems?

Router vendors enable it so that a basic VoIP phone behind the router works out of the box without the user understanding NAT. The default optimizes for the simplest case, not for business VoIP, multi-phone deployments, or encrypted SIP, where it does more harm than good.

I disabled SIP ALG and the problem remains. What now?

If symptoms survive with the ALG off, the cause is a separate NAT or firewall issue: a too-short UDP binding timeout, RTP ports being blocked, or the SDP advertising an address the far side cannot reach. Capture the SIP on both sides of the router to see which address is wrong, and address NAT at the edge rather than relying on the router to fix SIP for you.

Conclusion

SIP ALG is a well-intentioned feature that tries to solve a real problem, that SIP carries private addresses NAT does not rewrite, and solves it badly by editing live signaling based on a shallow parse of the protocol. The result is one-way audio, calls that drop on a timer, registrations that lapse, and inbound calls that never ring, all of which survive every other troubleshooting step you take. On almost every business network the right move is to find the setting, under whatever name the vendor gave it, and turn it off.

Disabling it removes the corruption but leaves the NAT problem underneath. For a single phone the network usually copes; at provider scale the work belongs at a Session Border Controller that handles NAT traversal, media, and SIP addressing as deliberate, configured functions rather than a transparent guess. Knowing the difference is what turns an afternoon of chasing a ghost into a five-minute fix.

Handle NAT and SIP Correctly at the Edge with ProSBC

ProSBC is a carrier-grade, software-based Session Border Controller that does the work a router ALG only gestures at. It operates as a full back-to-back user agent, terminating each call and re-originating it toward the far side, so it controls every signaling and media address on both legs deterministically instead of rewriting packets in transit. Far-end NAT detection, media anchoring, and rule-based SIP header manipulation are designed functions, not a fixed guess that breaks on the next vendor variation.

Because it anchors media and presents its own reachable public address, ProSBC resolves the one-way-audio and registration faults that ALGs create, across SIP over UDP, TCP, and TLS, without asking your carrier or your endpoints to change anything. It deploys on VMware, KVM, AWS, Azure, and baremetal, wherever your network edge actually sits.

Prefer to evaluate on your own first? Start your 30-day free trial.