Skip to content
Snippets Groups Projects
Commit 9e1b6c72 authored by Mark Michelson's avatar Mark Michelson
Browse files

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/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@259957 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 67222519
No related branches found
No related tags found
No related merge requests found
...@@ -13508,8 +13508,9 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq, int *cc_ ...@@ -13508,8 +13508,9 @@ static int get_destination(struct sip_pvt *p, struct sip_request *oreq, int *cc_
return -2; return -2;
} }
} }
/* If we have a context defined, overwrite the original context */ /* If we don't have a peer (i.e. we're a guest call),
if (!ast_strlen_zero(domain_context)) * 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); ast_string_field_set(p, context, domain_context);
} }
   
...@@ -24945,6 +24946,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str ...@@ -24945,6 +24946,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str
ast_string_field_set(peer, cid_num, v->value); ast_string_field_set(peer, cid_num, v->value);
} else if (!strcasecmp(v->name, "context")) { } else if (!strcasecmp(v->name, "context")) {
ast_string_field_set(peer, context, v->value); ast_string_field_set(peer, context, v->value);
ast_set_flag(&peer->flags[1], SIP_PAGE2_HAVEPEERCONTEXT);
} else if (!strcasecmp(v->name, "subscribecontext")) { } else if (!strcasecmp(v->name, "subscribecontext")) {
ast_string_field_set(peer, subscribecontext, v->value); ast_string_field_set(peer, subscribecontext, v->value);
} else if (!strcasecmp(v->name, "fromdomain")) { } else if (!strcasecmp(v->name, "fromdomain")) {
......
...@@ -344,6 +344,7 @@ ...@@ -344,6 +344,7 @@
#define SIP_PAGE2_REGISTERTRYING (1 << 24) /*!< DP: Send 100 Trying on REGISTER attempts */ #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_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_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 \ #define SIP_PAGE2_FLAGS_TO_COPY \
(SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_IGNORESDPVERSION | \ (SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_IGNORESDPVERSION | \
...@@ -351,7 +352,7 @@ ...@@ -351,7 +352,7 @@
SIP_PAGE2_BUGGY_MWI | SIP_PAGE2_TEXTSUPPORT | SIP_PAGE2_FAX_DETECT | \ 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_UDPTL_DESTINATION | SIP_PAGE2_VIDEOSUPPORT_ALWAYS | SIP_PAGE2_PREFERRED_CODEC | \
SIP_PAGE2_RPID_IMMEDIATE | SIP_PAGE2_RPID_UPDATE | SIP_PAGE2_SYMMETRICRTP |\ SIP_PAGE2_RPID_IMMEDIATE | SIP_PAGE2_RPID_UPDATE | SIP_PAGE2_SYMMETRICRTP |\
SIP_PAGE2_Q850_REASON) SIP_PAGE2_Q850_REASON | SIP_PAGE2_HAVEPEERCONTEXT)
/*@}*/ /*@}*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment