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:[email protected]>' 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
keep_alive_fix.diff
Description: Binary data
-- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
