[asterisk-commits] file: branch 1.2 r45260 - in /branches/1.2: channels/ configs/

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Mon Oct 16 12:28:18 MST 2006


Author: file
Date: Mon Oct 16 14:28:18 2006
New Revision: 45260

URL: http://svn.digium.com/view/asterisk?rev=45260&view=rev
Log:
Add 'ignoreoodreplies' option which will not create a pvt structure on a SIP response but instead basically drop it.

Modified:
    branches/1.2/channels/chan_sip.c
    branches/1.2/configs/sip.conf.sample

Modified: branches/1.2/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/branches/1.2/channels/chan_sip.c?rev=45260&r1=45259&r2=45260&view=diff
==============================================================================
--- branches/1.2/channels/chan_sip.c (original)
+++ branches/1.2/channels/chan_sip.c Mon Oct 16 14:28:18 2006
@@ -372,6 +372,8 @@
 
 static int global_reg_timeout = DEFAULT_REGISTRATION_TIMEOUT;	
 static int global_regattempts_max = 0;
+
+static int global_ignoreoodreplies = 1;
 
 /* Object counters */
 static int suserobjs = 0;
@@ -3238,6 +3240,11 @@
 		p = p->next;
 	}
 	ast_mutex_unlock(&iflock);
+
+	/* If this is a response and we have ignoring of out of dialog replies turned, then drop it */
+	if (req->method == SIP_RESPONSE && global_ignoreoodreplies)
+		return NULL;
+
 	p = sip_alloc(callid, sin, 1, intended_method);
 	if (p)
 		ast_mutex_lock(&p->lock);
@@ -8304,6 +8311,7 @@
 	ast_cli(fd, "  Videosupport:           %s\n", videosupport ? "Yes" : "No");
 	ast_cli(fd, "  AutoCreatePeer:         %s\n", autocreatepeer ? "Yes" : "No");
 	ast_cli(fd, "  Allow unknown access:   %s\n", global_allowguest ? "Yes" : "No");
+	ast_cli(fd, "  Drop misc replies:      %s\n", global_ignoreoodreplies ? "Yes" : "No");
 	ast_cli(fd, "  Promsic. redir:         %s\n", ast_test_flag(&global_flags, SIP_PROMISCREDIR) ? "Yes" : "No");
 	ast_cli(fd, "  SIP domain support:     %s\n", AST_LIST_EMPTY(&domain_list) ? "No" : "Yes");
 	ast_cli(fd, "  Call to non-local dom.: %s\n", allow_external_domains ? "Yes" : "No");
@@ -11947,6 +11955,11 @@
 		ast_set_flag(mask, SIP_PROMISCREDIR);
 		ast_set2_flag(flags, ast_true(v->value), SIP_PROMISCREDIR);
 		res = 1;
+	} else if (!strcasecmp(v->name, "ignoreoodreplies")) {
+		if (ast_true(v->value))
+			global_ignoreoodreplies = 1;
+		else
+			global_ignoreoodreplies = 0;
 	}
 
 	return res;
@@ -12599,6 +12612,7 @@
 	tos = 0;
 	expiry = DEFAULT_EXPIRY;
 	global_allowguest = 1;
+	global_ignoreoodreplies = 1;
 
 	/* Read the [general] config section of sip.conf (or from realtime config) */
 	v = ast_variable_browse(cfg, "general");

Modified: branches/1.2/configs/sip.conf.sample
URL: http://svn.digium.com/view/asterisk/branches/1.2/configs/sip.conf.sample?rev=45260&r1=45259&r2=45260&view=diff
==============================================================================
--- branches/1.2/configs/sip.conf.sample (original)
+++ branches/1.2/configs/sip.conf.sample Mon Oct 16 14:28:18 2006
@@ -111,7 +111,7 @@
 		    		; for any reason, always reject with '401 Unauthorized'
 				; instead of letting the requester know whether there was
 				; a matching user or peer for their request
-
+;ignoreoodreplies = no          ; If no then out of dialog replies will not be ignored
 ;
 ; If regcontext is specified, Asterisk will dynamically create and destroy a
 ; NoOp priority 1 extension for a given peer who registers or unregisters with



More information about the asterisk-commits mailing list