Disable it!
What is ALG?
The SIP Application Layer Gateway is common in many routers and is turned on by default. The ALG intercepts and analysis specific incoming traffic and controls whether to allow or deny said traffic to the application server. The purpose of the feature is to prevent problems by inspecting voice over IP traffic and modifying it if necessary. We often find this is not the case, and proves to create more problems than it allegedly solves.
The SIP ALG feature ends up changing the packets in ways it shouldn’t, resulting in the packets becoming corrupt and unreadable. This will give intermittent behaviour such as phones not registering and incoming calls failing.
Where to find SIP ALG for specific routers:
Asus:
Advanced Settings/ WAN > NAT Passthrough > SIP Passthrough
It is commonly called SIP Passthrough.
Billon:
This is commonly found under the NAT or Firewall Settings
D-Link
Advanced Settings > Application Level Gateway (ALG) Configuration > Unselect SIP option
DrayTek
Network > NAT > ALG
Note: DrayTek routers have been known not to be able to disable SIP ALG via the management interface and will require telnet to disable it.
Once connected via telnet, (Guide how to connect to a router via telnet) run the following commands to disabled SIP ALG:
Sys sip_alg 0
Sys commit
Huawei
The SIP ALG setting is under the security section.
Microtek
Micoteks SIP ALG is called SIP Helper.
Good name for something it is not.