We currently are using a NetSapiens based VoIP system and have extreme problems with a lot of consumer grade routers and modems due to SIP-ALG not being disabled or not being able disable.

So if SIP-ALG is such an issue with VoIP phones, why is it always enabled by default or yet alone even used as a protocol?

  • Frank, is the answer below good for you? Do you need more information? – music2myear Apr 7 '17 at 23:27

If SIP-ALG is such an issue with VoIP phones, why is it always enabled by default or yet alone even used as a protocol?

SIP-ALG allows a NAT router to re-write information within the SIP messages (SIP headers and SDP body).

The intention is to prevent some of the problems caused by router firewalls by inspecting VoIP traffic (packets) and if necessary modifying it.

This make signaling and audio traffic between the client behind NAT (a VoIP phone for example) and the SIP endpoint possible.

Without SIP-ALG you may have one-way audio on VoIP conversations (see below).

Unfortunately the SIP-ALG in many routers is poorly implemented and causes more problems than it solves.

If you have one of these problem routers it is recommended that the SIP-ALG is disabled and other methods used to ensure VoIP works correctly.

Gradwell and other providers often find that the SIP ALG modifies SIP packets in unexpected ways, corrupting them and making them unreadable. This can give you unexpected behaviour, such as phones not registering and incoming calls failing.

Source What is SIP ALG and why does Gradwell recommend that I turn it off?

SIP ALG problems

The main problem is the poor implementation 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:

  • Lack of incoming calls: When a UA is switched on it sends a REGISTER to the proxy in order to be localizable and receive incoming calls. This REGISTER is modified by the ALG feature (if not the user wouldn't be reachable by the proxy since it indicated a private IP in REGISTER "Contact" header). Common routers just mantain the UDP "conntection" open for a while (30-60 seconds) so after that time the port forwarding is ended and incoming packets are discarded by the router. Many SIP proxies mantain the UDP keepalive by sending OPTIONS or NOTIFY messages to the UA, but they just do it when the UA has been detected as natted during the registration. A SIP ALG router rewrites the REGISTER request so the proxy doesn't detect the NAT and doesn't mantain the keepalive (so incoming calls will be not possible).
  • Breaking SIP signalling: Many of the actual common routers with inbuilt SIP ALG modify SIP headers and the SDP body incorrectly, breaking SIP and making communication just impossible. Some of them do a whole replacing by searching a private address in all SIP headers and body and replacing them with the router public mapped address (for example, replacing the private address if it appears in "Call-ID" header, which makes no sense at all). Many SIP ALG routers corrupt the SIP message when writting into it (i.e. missed semi-colon ";" in header parameters). Writting incorrect port values greater than 65536 is also common in many of these routers.
  • Dissallows server side solutions: Even if you don't need a client side NAT solution (your SIP proxy gives you a server NAT solution), if your router has SIP ALG enabled that breaks SIP signalling, it will make communication with your proxy impossible.

Source Routers SIP ALG

Why does one way audio occur?

The most common cause of one way audio is routers, because many routers are not built with VoIP in mind. Most ISPs will give you one IP, which is the address you use on the internet and allows other computers to find you.

When you connect devices and computers to your router, it has to share this IP out amongst all of your devices. Therefore it uses something called Network Address Translation (NAT). Using this, each of your devices get their own internal IP address so that your router can differentiate them.

This isn’t used for talking to the internet, and is an internal address only. When your computer or other devices communicate with the internet the IP address that your internet service provider has given you is used (please see this article for more information on this process).

This generally isn’t a problem when performing everyday tasks on the internet, as you mostly retrieve information, and not have it sent directly to your computer.

However, a phone call is a two way process. You send audio out via the internet and the other party sends theirs back to you. This causes a dilemma, as the audio will have your public IP address on it, but not the internal address of your device. Your router receives the information, but doesn’t know what to do with it. Therefore it ignores it. This means that the other person hears you talking, but no matter what they say you don’t hear them. Their part of the conversation simply isn’t getting through.

Source Why do I get one way audio when making phone calls?

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.