[asterisk-users] Workaround for bug in Linksys Firmware 6.1.3(a) (or greater)

James Lamanna jlamanna at gmail.com
Tue Jun 22 13:04:07 CDT 2010


If you've used Linksys phones against recent Asterisk 1.4.x you may
have noticed
that they may drop registration for a quick bit and then go back to being ok
if your phone is behind NAT.
If you turn Asterisk's sip debug information on, you'll probably find
errors like these in your logs:

NOTICE[30179] chan_sip.c: Correct auth, but based on stale nonce
received from '"999911" <sip:999911 at 208.90.186.10>'

I believe I have determined that this is caused by a bug in the
Linksys firmware that is related to the NAT Keep-Alive packets.
Because recent Asterisk 1.4.x's do not establish a SIP dialog for
NOTIFY requests, the "489 Bad Event"
replies were going back to the wrong address if your phone was behind NAT.
This lack of reply would cause the next REGISTER message to use the
same nonce as the previous REGISTER,
resulting in the "stale nonce" errors and temporarily dropping
registration. I've also seen the lack of response to
the NAT keep-alive cause the phone to stop being able to register
completely as well.

Below I've posted a patch that responds with a 200 OK to these
keep-alive requests, and I believe
also solves the temporary loss of registration problem, though more
testing in different environments
for those who experience this problem would be greatly appreciated.

The patch is against 1.4.32.

-- James
-------------- next part --------------
A non-text attachment was scrubbed...
Name: keep_alive_fix.diff
Type: application/octet-stream
Size: 1911 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-users/attachments/20100622/1c461f54/attachment.obj 


More information about the asterisk-users mailing list