OBI 100 - Outbound 400 errors - Content Length Mismatch - Culprit is SIP ALG on Netgear Router
I couldn't make outgoing calls with my OBI 100. On the phone you'd hear the high pitched three tones that signify an error and hear something like "The number you dialed, was rejected by the service provider, error 4 0 0".
Incoming calls worked OK.
A test call to **9 222 222 222 which is the OBI echo service worked fine.
A check of the call history at the OBI device web interface at 192.168.1.x shows the outgoing call log as shown below. The 400 error was more specifically a Content Length Mismatch which is a mismatch between the content as given by the SIP header and that given by the UDP header. Examples of the Content Length Mismatch in the OBI call log are shown below.
This onion had three layers to peel back. The layers were:
Incoming calls worked OK.
A test call to **9 222 222 222 which is the OBI echo service worked fine.
A check of the call history at the OBI device web interface at 192.168.1.x shows the outgoing call log as shown below. The 400 error was more specifically a Content Length Mismatch which is a mismatch between the content as given by the SIP header and that given by the UDP header. Examples of the Content Length Mismatch in the OBI call log are shown below.
This onion had three layers to peel back. The layers were:
- First I saw that resetting my Netgear router would temporarily allow outgoing calls to go through. It was a start, but the next time I would go to use the phone the errors would return and I would then have to reset the router again. Not good. But in retrospect it provided a clue that the problem lay within the router. And while using a previous (lower end) router there had been no issues.
- Next, I found this link - it seems that for my service provider, Vestalink, it's important to use port 8891. They say using the default port of 5060 causes problems. I set all ports to 8891 but that did not solve the problem.
- Finally, the answer was found on a Netgear forum. The problem lies with the router's attempt to implement a SIP ALG (Application-level Gateway). It seems that many commercial routers simply don't implement SIP ALG correctly. The ALG attempts to rewrite the SIP packets to account for the fact that the SIP client is behind a NAT device. However, this is
b) Usually done incorrectly leading to the Content Length Mismatch errors.
Comments