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
This commit is contained in:
Joshua Colp
2016-09-07 21:00:16 +00:00
parent 004d3c32ba
commit 2e5da0c715

View File

@@ -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;