--- chan_sip.c.orig 2009-09-08 06:33:11.000000000 -0700 +++ chan_sip.c 2009-09-08 20:35:22.000000000 -0700 @@ -1794,7 +1794,9 @@ static int __sip_xmit(struct sip_pvt *p, char *data, int len) { int res; - const struct sockaddr_in *dst = sip_real_dst(p); + /*const struct sockaddr_in *dst = sip_real_dst(p);*/ + const struct sockaddr_in *dst = &p->recv; + res = sendto(sipsock, data, len, 0, (const struct sockaddr *)dst, sizeof(struct sockaddr_in)); if (res == -1) { @@ -8865,8 +8867,16 @@ if (sipdebug) ast_log(LOG_NOTICE, "Correct auth, but based on stale nonce received from '%s'\n", get_header(req, "To")); /* We got working auth token, based on stale nonce . */ + + /* TOTAL HACK to get us past resgistration problem with SPA942/946 */ + if (sipdebug) + ast_log(LOG_NOTICE, "Allowing the stale nonce to succeed.\n"); + return AUTH_SUCCESSFUL; + + /* this was the old secure code... set_nonce_randdata(p, 0); transmit_response_with_auth(p, response, req, p->randdata, reliable, respheader, TRUE); + */ } else { /* Everything was wrong, so give the device one more try with a new challenge */ if (!ast_test_flag(req, SIP_PKT_IGNORE)) {