Router’s SIP ALG
Sometimes you get “line occupied” error even though your line (VOIP channel) is clearly not a problem. One of the cause of this problem is related to your router’s interfering with VOIP/SIP messages. A clear sign of a router problem can be found in the log files, where a SIP error message from your VOIP service contains: “400 Bad Request – Actual Content Shorter Than Content-Length”.
How to verify the problem is caused by your router?
You can try the following experiment.
1. Connect your computer directly to the Internet. If you are using a broadband modem (like a cable modem or a DSL modem), unplug the router from the modem, and connect your computer to the modem.
2. Reboot your computer and make sure you can browse the Internet
3. Try to use Voicent software
If the above experiment works, then it is almost sure that your router is the problem. Specifically, it is caused by your router’s ALG (see below for more info) feature is not working as expected.
How do I fix it?
You need to disable your router’s ALG feature. To access your router settings, you normally need to find its IP address and point your browser to that IP. In newer versions of Windows (i.e. Vista/win7) you can usually see your router under Network. Right click on it and select View device web pages. The following is an example for NetGear, specifically NetGear N150 (WRN1000/WRN2000 and similar series) and possibly other NetGear routers
SIP ALG settings must be disabled
You need to login (default user is “admin” and default password for it is “password”)
Go under WAN Setup and tick Disable SIP ALG and apply.
WAN Setup > Disable SIP Firewall: check the box
WAN Setup > NAT Filtering: Set to Open
Maintenance > Router Upgrade: Click on Check and upgrade fireware version (take care and follow instructions)
What is SIP ALG?
Many of today’s commercial routers implement SIP ALG (Application-level gateway), coming with this feature enabled by default. While ALG could help in solving firewall/NAT related problems, the fact is that many routers’ ALG implementations are wrong and break VOIP/SIP.
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. This re-write feature, if not correctly implemented, will cause VOIP/SIP not working.