From 3ca369ec95dd13ca7721665db459f044ccd8fbb5 Mon Sep 17 00:00:00 2001 From: Terry Wilson Date: Fri, 6 Jan 2012 23:25:03 +0000 Subject: [PATCH] Don't leak CID in From header when presentation=unavailable When someone does Set(CALLERPRES()=unavailable) (or Set(CALLERID(pres)=unavailable)) when sendrpid=no, the From header shows "Anonymous" . When sendrpid=yes/pai, the From header will still display the callerid info, even though we supply an rpid header with the anonymous info. It seems like we shouldn't leak that info in any case. Skimming http://tools.ietf.org/html/draft-ietf-sip-privacy-04 seems to indicate that one shouldn't send identifying info in the From in this case. This patch anonymizes the From header as well even when sendrpid=yes/pai. (closes issue ASTERISK-16538) Review: https://reviewboard.asterisk.org/r/1649/ ........ Merged revisions 349968 from http://svn.asterisk.org/svn/asterisk/branches/1.8 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@349977 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index a07523a223..e4c95b4b1d 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -12099,8 +12099,9 @@ static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmetho if ((ast_party_id_presentation(&p->owner->connected.id) & AST_PRES_RESTRICTION) == AST_PRES_ALLOWED) { l = p->owner->connected.id.number.valid ? p->owner->connected.id.number.str : NULL; n = p->owner->connected.id.name.valid ? p->owner->connected.id.name.str : NULL; - } else if (!ast_test_flag(&p->flags[0], SIP_SENDRPID)) { - /* if we are not sending RPID and user wants his callerid restricted */ + } else { + /* Even if we are using RPID, we shouldn't leak information in the From if the user wants + * their callerid restricted */ l = CALLERID_UNKNOWN; n = l; d = FROMDOMAIN_INVALID;