Improve consistency of party ID privacy usage.

Prior to this change, the Remote-Party-ID header took the position of
"If caller name and number are not explicitly allowed, then they are private"
and P-Asserted-Identity took the position of
"Caller name and number are only private if marked explicitly so"

Now both mechanisms of conveying party identification use the former approach.
........

Merged revisions 421778 from http://svn.asterisk.org/svn/asterisk/branches/12
........

Merged revisions 421783 from http://svn.asterisk.org/svn/asterisk/branches/13


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@421785 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Michelson 2014-08-21 21:19:06 +00:00
parent 77ddc5b713
commit 2150daf748
1 changed files with 6 additions and 8 deletions

View File

@ -467,17 +467,15 @@ static void add_privacy_header(pjsip_tx_data *tdata, const struct ast_party_id *
old_privacy = pjsip_msg_find_hdr_by_name(tdata->msg, &pj_privacy_name, NULL);
if ((id->name.presentation & AST_PRES_RESTRICTION) == AST_PRES_RESTRICTED ||
(id->name.presentation & AST_PRES_RESTRICTION) == AST_PRES_RESTRICTED) {
if (!old_privacy) {
pjsip_generic_string_hdr *privacy_hdr = pjsip_generic_string_hdr_create(
tdata->pool, &pj_privacy_name, &pj_privacy_value);
pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr *)privacy_hdr);
}
} else {
if ((id->name.presentation & AST_PRES_RESTRICTION) == AST_PRES_ALLOWED &&
(id->name.presentation & AST_PRES_RESTRICTION) == AST_PRES_ALLOWED) {
if (old_privacy) {
pj_list_erase(old_privacy);
}
} else if (!old_privacy) {
pjsip_generic_string_hdr *privacy_hdr = pjsip_generic_string_hdr_create(
tdata->pool, &pj_privacy_name, &pj_privacy_value);
pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr *)privacy_hdr);
}
}