How to Disable SIP ALG on a Mikrotik
Posted by Chris Popescu on 05 April 2019 04:16 PM
SIP ALG Explained - Technical
Many of today's commercial routers implement SIP ALG (Application-level gateway), this feature is almost always enabled by default. Many of the brand such as Cisco, Netgear, D-Link, Mikrotik... While ALG could help in solving NAT related problems, many routers' ALG implementations are brand specific, simply wrong and break SIP.
There are various solutions for SIP clients behind NAT, some of them in client side (STUN, TURN, ICE), others in server side (Proxy RTP as RtpProxy, MediaProxy). ALG works typically in the client LAN router or gateway. In some scenarios, some client-side solutions are not valid, for example, STUN with symmetrical NAT router. If the SIP proxy doesn't provide a server side NAT solution, then an ALG solution could have a place.
An ALG understands the protocol used by the specific applications that it supports (in this case SIP) and does a protocol packet-inspection of traffic through it. A NAT router with a built-in SIP ALG can re-write information within the SIP messages (SIP headers and SDP body) making signaling and audio traffic between the client behind NAT and the SIP endpoint possible.
You can verify if your router is SIP ALG ENABLED by downloading and running our SIP ALG TESTER Program
SIP ALG Problems
Poor implementations at SIP protocol level of most commercial routers and the fact that this technology is just useful for outgoing calls, but not for incoming calls explained:
Mikrotik Disable SIP ALG Procedure:
Mikrotik SIP ALG is called a SIP Helper and is located under /IP>Firewall>Service ports
Terminal: To disable, run this command from the terminal:
/ip firewall service-port disable sip
Navigate to IP > Firewall and then click on the Service Ports tab and disable it through the GUI.