[asterisk-commits] mmichelson: trunk r259957 - in /trunk/channels: chan_sip.c sip/include/sip.h
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Apr 28 17:34:20 CDT 2010
Author: mmichelson
Date: Wed Apr 28 17:34:15 2010
New Revision: 259957
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=259957
Log:
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:
trunk/channels/chan_sip.c
trunk/channels/sip/include/sip.h
Modified: trunk/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/chan_sip.c?view=diff&rev=259957&r1=259956&r2=259957
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Wed Apr 28 17:34:15 2010
@@ -13508,8 +13508,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);
}
@@ -24945,6 +24946,7 @@
ast_string_field_set(peer, cid_num, v->value);
} else if (!strcasecmp(v->name, "context")) {
ast_string_field_set(peer, context, v->value);
+ ast_set_flag(&peer->flags[1], SIP_PAGE2_HAVEPEERCONTEXT);
} else if (!strcasecmp(v->name, "subscribecontext")) {
ast_string_field_set(peer, subscribecontext, v->value);
} else if (!strcasecmp(v->name, "fromdomain")) {
Modified: trunk/channels/sip/include/sip.h
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/sip/include/sip.h?view=diff&rev=259957&r1=259956&r2=259957
==============================================================================
--- trunk/channels/sip/include/sip.h (original)
+++ trunk/channels/sip/include/sip.h Wed Apr 28 17:34:15 2010
@@ -344,6 +344,7 @@
#define SIP_PAGE2_REGISTERTRYING (1 << 24) /*!< DP: Send 100 Trying on REGISTER attempts */
#define SIP_PAGE2_UDPTL_DESTINATION (1 << 25) /*!< DP: Use source IP of RTP as destination if NAT is enabled */
#define SIP_PAGE2_VIDEOSUPPORT_ALWAYS (1 << 26) /*!< DP: Always set up video, even if endpoints don't support it */
+#define SIP_PAGE2_HAVEPEERCONTEXT (1 << 27) /*< Are we associated with a configured peer context? */
#define SIP_PAGE2_FLAGS_TO_COPY \
(SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_IGNORESDPVERSION | \
@@ -351,7 +352,7 @@
SIP_PAGE2_BUGGY_MWI | SIP_PAGE2_TEXTSUPPORT | SIP_PAGE2_FAX_DETECT | \
SIP_PAGE2_UDPTL_DESTINATION | SIP_PAGE2_VIDEOSUPPORT_ALWAYS | SIP_PAGE2_PREFERRED_CODEC | \
SIP_PAGE2_RPID_IMMEDIATE | SIP_PAGE2_RPID_UPDATE | SIP_PAGE2_SYMMETRICRTP |\
- SIP_PAGE2_Q850_REASON)
+ SIP_PAGE2_Q850_REASON | SIP_PAGE2_HAVEPEERCONTEXT)
/*@}*/
More information about the asterisk-commits
mailing list