]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Improve consistency of party ID privacy usage.
authorMark Michelson <mmichelson@digium.com>
Thu, 21 Aug 2014 21:18:21 +0000 (21:18 +0000)
committerMark Michelson <mmichelson@digium.com>
Thu, 21 Aug 2014 21:18:21 +0000 (21:18 +0000)
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

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@421783 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_pjsip_caller_id.c

index cffb45342ac6dab8b87f6745de1c2bb297354bd2..5e2f762b304c7f54931f5ca47512b8665945e09d 100644 (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);
        }
 }