summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorTilghman Lesher <tilghman@meg.abyt.es>2009-07-07 21:10:14 +0000
committerTilghman Lesher <tilghman@meg.abyt.es>2009-07-07 21:10:14 +0000
commite76a0e92d24253cb0fdda40ef7e6c3ccb45ccbae (patch)
tree5fd30685ee494a5f4ec95279ca290077150fdc73 /channels
parentcf8395002db0a1988089687cd4bc07b3ed87fff2 (diff)
Permit setting custom headers from the peer definition.
(closes issue #14059) Reported by: fnordian git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@205086 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c6
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;