From f401187282b2449c6b579ebdf8c1d5937c9b5baf Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Wed, 7 Sep 2016 21:00:16 +0000 Subject: [PATCH] res_pjsip: Allow global headers to be overridden. Currently when you add global headers from the dialplan both the header in the dialplan and the globally configured header are added to the resulting SIP INVITE. This change makes it so the headers in the dialplan take precedence and are the only ones added. Change-Id: I36f864298f38db3632ad503edc11267cb8ffb3ad --- res/res_pjsip/pjsip_global_headers.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/res/res_pjsip/pjsip_global_headers.c b/res/res_pjsip/pjsip_global_headers.c index 735008dcc8..501f5f5237 100644 --- a/res/res_pjsip/pjsip_global_headers.c +++ b/res/res_pjsip/pjsip_global_headers.c @@ -87,6 +87,14 @@ static void add_headers_to_message(struct header_list *headers, pjsip_tx_data *t return; } AST_LIST_TRAVERSE(headers, iter, next) { + pj_str_t name; + pjsip_generic_string_hdr *hdr; + + hdr = pjsip_msg_find_hdr_by_name(tdata->msg, pj_cstr(&name, iter->name), NULL); + if (hdr) { + continue; + } + ast_sip_add_header(tdata, iter->name, iter->value); }; tdata->mod_data[global_header_mod.id] = &handled_id;