diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-07-07 21:10:14 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-07-07 21:10:14 +0000 |
commit | f3f5ecb6fb543087786ba30ff3f771b44071977f (patch) | |
tree | 5fd30685ee494a5f4ec95279ca290077150fdc73 | |
parent | 93ac20702f5c90e088ff7329f142c2f82d36f47f (diff) |
Permit setting custom headers from the peer definition.
(closes issue #14059)
Reported by: fnordian
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@205086 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | channels/chan_sip.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 57c4d515e..59a4793df 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -23970,7 +23970,7 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str struct sip_peer tmp_peer; const char *srvlookup = NULL; static int deprecation_warning = 1; - int alt_fullcontact = alt ? 1 : 0; + int alt_fullcontact = alt ? 1 : 0, headercount = 0; struct ast_str *fullcontact = ast_str_alloca(512); if (!realtime || ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS)) { @@ -24294,6 +24294,10 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str } } else if (!strcasecmp(v->name, "setvar")) { peer->chanvars = add_var(v->value, peer->chanvars); + } else if (!strcasecmp(v->name, "header")) { + char tmp[4096]; + snprintf(tmp, sizeof(tmp), "__SIPADDHEADERpre%2d=%s", ++headercount, v->value); + peer->chanvars = add_var(tmp, peer->chanvars); } else if (!strcasecmp(v->name, "qualify")) { if (!strcasecmp(v->value, "no")) { peer->maxms = 0; |