[Asterisk-cvs] asterisk/channels chan_sip.c,1.325,1.326

markster at lists.digium.com markster at lists.digium.com
Fri Apr 2 16:43:48 CST 2004


Update of /usr/cvsroot/asterisk/channels
In directory mongoose.digium.com:/tmp/cvs-serv23861/channels

Modified Files:
	chan_sip.c 
Log Message:
Keep REGISTER dialog open a little longer in case they don't get our 200 OK right away...


Index: chan_sip.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_sip.c,v
retrieving revision 1.325
retrieving revision 1.326
diff -u -d -r1.325 -r1.326
--- chan_sip.c	2 Apr 2004 14:40:21 -0000	1.325
+++ chan_sip.c	2 Apr 2004 21:43:07 -0000	1.326
@@ -3685,7 +3685,7 @@
 	/* Always OK if no secret */
 	if (!strlen(secret) && !strlen(md5secret))
 		return 0;
-	if (ignore) {
+	if (ignore && strlen(randdata) && !strlen(get_header(req, "Proxy-Authorization"))) {
 		/* This is a retransmitted invite/register/etc, don't reconstruct authentication
 		   information */
 		if (strlen(randdata)) {
@@ -5663,7 +5663,9 @@
 		if ((res = register_verify(p, sin, req, e, ignore)) < 0) 
 			ast_log(LOG_NOTICE, "Registration from '%s' failed for '%s'\n", get_header(req, "To"), inet_ntoa(sin->sin_addr));
 		if (res < 1) {
-			p->needdestroy = 1;
+			/* Destroy the session, but keep us around for just a bit in case they don't
+			   get our 200 OK */
+		    sip_scheddestroy(p, 15*1000);
 		}
 	} else if (!strcasecmp(cmd, "ACK")) {
 		/* Uhm, I haven't figured out the point of the ACK yet.  Are we




More information about the svn-commits mailing list