[svn-commits] mmichelson: branch 1.6.1 r259958 - in /branches/1.6.1: ./ channels/chan_sip.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Apr 28 17:35:34 CDT 2010


Author: mmichelson
Date: Wed Apr 28 17:35:29 2010
New Revision: 259958

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=259958
Log:
Merged revisions 259957 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

........
  r259957 | mmichelson | 2010-04-28 17:34:15 -0500 (Wed, 28 Apr 2010) | 11 lines
  
  Don't override peer context with domain context.
  
  (closes issue #17040)
  Reported by: pprindeville
  Patches:
        asterisk-1.6-bugid17040.patch uploaded by pprindeville (license 347)
  Tested by: pprindeville
  
  Review: https://reviewboard.asterisk.org/r/565/
........

Modified:
    branches/1.6.1/   (props changed)
    branches/1.6.1/channels/chan_sip.c

Propchange: branches/1.6.1/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.

Modified: branches/1.6.1/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.1/channels/chan_sip.c?view=diff&rev=259958&r1=259957&r2=259958
==============================================================================
--- branches/1.6.1/channels/chan_sip.c (original)
+++ branches/1.6.1/channels/chan_sip.c Wed Apr 28 17:35:29 2010
@@ -1063,6 +1063,7 @@
 /* realtime flags */
 #define SIP_PAGE2_RTCACHEFRIENDS	(1 << 0)	/*!< GP: Should we keep RT objects in memory for extended time? */
 #define SIP_PAGE2_RTAUTOCLEAR		(1 << 2)	/*!< GP: Should we clean memory from peers after expiry? */
+#define SIP_PAGE2_HAVEPEERCONTEXT	(1 << 3)	/*< Are we associated with a configured peer context? */
 /* Space for addition of other realtime flags in the future */
 #define SIP_PAGE2_STATECHANGEQUEUE	(1 << 9)	/*!< D: Unsent state pending change exists */
 
@@ -1096,7 +1097,8 @@
 	(SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_IGNORESDPVERSION | \
 	SIP_PAGE2_VIDEOSUPPORT | SIP_PAGE2_T38SUPPORT | SIP_PAGE2_RFC2833_COMPENSATE | \
 	SIP_PAGE2_BUGGY_MWI | SIP_PAGE2_TEXTSUPPORT | \
-	SIP_PAGE2_UDPTL_DESTINATION | SIP_PAGE2_VIDEOSUPPORT_ALWAYS | SIP_PAGE2_FAX_DETECT)
+	SIP_PAGE2_UDPTL_DESTINATION | SIP_PAGE2_VIDEOSUPPORT_ALWAYS | SIP_PAGE2_FAX_DETECT | \
+	SIP_PAGE2_HAVEPEERCONTEXT)
 
 /*@}*/ 
 
@@ -12565,8 +12567,9 @@
 				return -2;
 			}
 		}
-		/* If we have a context defined, overwrite the original context */
-		if (!ast_strlen_zero(domain_context))
+		/* If we don't have a peer (i.e. we're a guest call),
+		 * overwrite the original context */
+		if (!ast_test_flag(&p->flags[1], SIP_PAGE2_HAVEPEERCONTEXT) && !ast_strlen_zero(domain_context))
 			ast_string_field_set(p, context, domain_context);
 	}
 
@@ -22888,6 +22891,7 @@
 				ast_copy_string(peer->cid_num, v->value, sizeof(peer->cid_num));
 			} else if (!strcasecmp(v->name, "context")) {
 				ast_copy_string(peer->context, v->value, sizeof(peer->context));
+				ast_set_flag(&peer->flags[1], SIP_PAGE2_HAVEPEERCONTEXT);
 			} else if (!strcasecmp(v->name, "subscribecontext")) {
 				ast_copy_string(peer->subscribecontext, v->value, sizeof(peer->subscribecontext));
 			} else if (!strcasecmp(v->name, "fromdomain")) {




More information about the svn-commits mailing list