summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTerry Wilson <twilson@digium.com>2012-01-06 23:31:25 +0000
committerTerry Wilson <twilson@digium.com>2012-01-06 23:31:25 +0000
commitb35a3a5c4a74a5733fce6a809d5197109a1fdd93 (patch)
tree32007e04eae71c96974f1e38509644ea136b5f5a
parent389ac0cff187421f3136c9b30302b372f8e0e8e8 (diff)
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" <anonymous@anonymous.invalid>. 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 ........ Merged revisions 349977 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@349978 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/chan_sip.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 80417ef16..f4ed077ec 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -12119,8 +12119,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;