diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2009-07-07 21:10:14 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2009-07-07 21:10:14 +0000 |
commit | e76a0e92d24253cb0fdda40ef7e6c3ccb45ccbae (patch) | |
tree | 5fd30685ee494a5f4ec95279ca290077150fdc73 /channels | |
parent | cf8395002db0a1988089687cd4bc07b3ed87fff2 (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.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; |