Re: [sipcore] Last Call: <draft-ietf-sipcore-status-unwanted-04.txt> (A SIP Response Code for Unwanted Calls) to Proposed Standard

Henning Schulzrinne <Henning.Schulzrinne@fcc.gov> Tue, 21 March 2017 16:17 UTC

Return-Path: <Henning.Schulzrinne@fcc.gov>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2FCBC129B38; Tue, 21 Mar 2017 09:17:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.61
X-Spam-Level:
X-Spam-Status: No, score=-0.61 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=1.989, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=fccoffice.onmicrosoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gxBERvS4Ui7v; Tue, 21 Mar 2017 09:17:46 -0700 (PDT)
Received: from mx0b-0024ed01.pphosted.com (mx0b-0024ed01.pphosted.com [148.163.153.198]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6BCF212995F; Tue, 21 Mar 2017 09:17:18 -0700 (PDT)
Received: from pps.filterd (m0102174.ppops.net [127.0.0.1]) by mx0b-0024ed01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v2LGDpqp029524; Tue, 21 Mar 2017 16:17:15 GMT
Received: from gcc01-dm2-obe.outbound.protection.outlook.com (mail-dm2gcc01lp0050.outbound.protection.outlook.com [23.103.198.50]) by mx0b-0024ed01.pphosted.com with ESMTP id 298x2etch5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 21 Mar 2017 16:17:15 +0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fccoffice.onmicrosoft.com; s=selector1-fcc-gov; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=40HLLg4mGSBGniO73cPEMaDO3w+jgB3RLb/b90ymTpc=; b=jWPXpf7V/Wxj00QaYsqYW7XU/VLJNJnO86JOJjOV43+xSddmW9YbYkBvEWjKj5HfaSnOOXjGQc+aWW12TfC2Xds67dRr0lFucuRRin5HlwacguYOrs9cXMOv5pe9ddmJVCRn2+EoX4Xl45YRTrerHGUQ5oxdTmTAeLsi8L08baU=
Received: from BY1PR09MB0631.namprd09.prod.outlook.com (10.160.110.19) by BY1PR09MB0632.namprd09.prod.outlook.com (10.160.110.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.977.11; Tue, 21 Mar 2017 16:17:05 +0000
Received: from BY1PR09MB0631.namprd09.prod.outlook.com ([10.160.110.19]) by BY1PR09MB0631.namprd09.prod.outlook.com ([10.160.110.19]) with mapi id 15.01.0977.020; Tue, 21 Mar 2017 16:17:06 +0000
From: Henning Schulzrinne <Henning.Schulzrinne@fcc.gov>
To: Pete Resnick <presnick@qti.qualcomm.com>, "ietf@ietf.org" <ietf@ietf.org>
CC: "draft-ietf-sipcore-status-unwanted@ietf.org" <draft-ietf-sipcore-status-unwanted@ietf.org>, "sipcore@ietf.org" <sipcore@ietf.org>
Thread-Topic: Last Call: <draft-ietf-sipcore-status-unwanted-04.txt> (A SIP Response Code for Unwanted Calls) to Proposed Standard
Thread-Index: AQHSl6Iq2il9S89Skk6DXPjEXEA7BqGfhkwAgAACiiA=
Date: Tue, 21 Mar 2017 16:17:05 +0000
Message-ID: <BY1PR09MB0631F94D0B74E498ECCF3A4DEA3D0@BY1PR09MB0631.namprd09.prod.outlook.com>
References: <148893258669.17675.7013326933036466908.idtracker@ietfa.amsl.com> <E74825F1-B661-4A8C-9B96-CC970AEA0E56@qti.qualcomm.com>
In-Reply-To: <E74825F1-B661-4A8C-9B96-CC970AEA0E56@qti.qualcomm.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: qti.qualcomm.com; dkim=none (message not signed) header.d=none;qti.qualcomm.com; dmarc=none action=none header.from=fcc.gov;
x-originating-ip: [192.104.54.21]
x-microsoft-exchange-diagnostics: 1; BY1PR09MB0632; 7:5Clsj+FykMgrlJ6G1oQYX1tAltxUVsCWgyyV0cDPfm6C/wd3WzeTFzWWJeyCSLipJzZZGvz9WPG1bG8F6eYmwu16D894D1jZObsoLVFzHaGcODTZCCZ9A9XYhZuHYznGLUGbvIskuucdBn6nv1dSQf17LS2NUC96I7LItikGKCJDMzVo7b62kSgr1TKOzZJGuvZs34kfKmtYP0jHh5gWKlH21jC4Uvc4oV7fkJClOj+HyYiPGhTrH2pRbduqmK3hEzeJwQkO4E/LfcgeQufEypnpzLiXlqxOTyiPLlcRr7LhEB0BxT8m0m7A1Vs2u4CHkllPwlYZAJIq6rNltfGfjA==
x-ms-office365-filtering-correlation-id: 4c08bd21-9c69-46c7-e4ca-08d47075b7aa
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075); SRVR:BY1PR09MB0632;
x-microsoft-antispam-prvs: <BY1PR09MB0632B91189319D5567E59BE0EA3D0@BY1PR09MB0632.namprd09.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(10436049006162)(120809045254105)(788757137089)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123558025)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(6072148); SRVR:BY1PR09MB0632; BCL:0; PCL:0; RULEID:; SRVR:BY1PR09MB0632;
x-forefront-prvs: 02530BD3AA
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39450400003)(24454002)(377454003)(33656002)(54356999)(50986999)(76176999)(230783001)(102836003)(790700001)(3846002)(6116002)(66066001)(25786009)(8676002)(966004)(2900100001)(86362001)(38730400002)(7696004)(6306002)(6246003)(53936002)(606005)(19609705001)(74316002)(3280700002)(7736002)(5660300001)(5890100001)(2501003)(7906003)(122556002)(4326008)(6436002)(2906002)(8936002)(81166006)(53546009)(2950100002)(54906002)(99286003)(55016002)(3660700001)(77096006)(6506006)(236005)(9686003)(54896002)(229853002)(189998001); DIR:OUT; SFP:1102; SCL:1; SRVR:BY1PR09MB0632; H:BY1PR09MB0631.namprd09.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en;
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BY1PR09MB0631F94D0B74E498ECCF3A4DEA3D0BY1PR09MB0631namp_"
MIME-Version: 1.0
X-OriginatorOrg: fcc.gov
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Mar 2017 16:17:05.8465 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72970aed-3669-4ca8-b960-dd016bc72973
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR09MB0632
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-03-21_12:, , signatures=0
X-Proofpoint-Spam-Reason: safe
Archived-At: <https://mailarchive.ietf.org/arch/msg/sipcore/eegaXYB607dc6pV8oBPxBGSNSSo>
Subject: Re: [sipcore] Last Call: <draft-ietf-sipcore-status-unwanted-04.txt> (A SIP Response Code for Unwanted Calls) to Proposed Standard
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sipcore/>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 21 Mar 2017 16:17:50 -0000

Pete,

I believe we discussed several of these issues in the meeting and the early in-person discussion, but the discussion was never quite focused, so it's probably easy to miss in the archives. My take of the discussion was that a simple mechanism that reflects plausible and likely UI approaches was preferable to a more complex mechanism. Nothing prevents adding information to the 'unwanted' status code in the future, should there be a need. As you indicate, the Call-Info labeling may well inform such an effort.

Yes, the idea was to model the (apparently near-universal) notions of the email spam button. Indeed, early phone UIs that are emerging do seem to take the same approach, such as the Google Android dialer UI. It offers exactly one option - swipe up to accept and a red (X) button to block calls like that.

The goal was never to create a full-fledged API for rejecting classes of calls or otherwise controlling the behavior of voice spam filters. I don't think that's appropriate for a call response as that would seem to be better done via a web interface or other API-based configuration option. For example, such web UIs may offer more in-depth options such as "no charities, except X" or "no surveys except those labeled as high-quality by trusted organization Y". I don't think we are anywhere close to knowing what this should be.

My sense is that, given UI and user patience limitations, no deployed system actually uses the Retry-After header, so all 603's seen in the wild are devoid of this indicator.

In practice, users will only be willing to spend a limited amount of time on feedback for unwanted calls. Analytics will be much better in sorting out the "annoying ex" from "annoying time share seller" than asking users to fill out a survey after the call - the former will be indicated by exactly one person only, the latter by hundreds or thousands. For what it's worth, the same potential problems exists in email, but doesn't seem to have caused any actual problems for spam filters since the statistical signature looks quite different.

Adding parameters to existing status codes can be done, but that seems more a matter of design taste. After all, we could then dispense with all specific codes and just use 100, 200, 400, 500 and 600, each with headers attached. This has not been the SIP design approach in the past. I don't see the problem with a new status code - we routinely add them and the mechanism of handling unknown ones are quite clear.

Henning

From: Pete Resnick [mailto:presnick@qti.qualcomm.com]
Sent: Tuesday, March 21, 2017 11:50 AM
To: ietf@ietf.org
Cc: draft-ietf-sipcore-status-unwanted@ietf.org; ben@nostrum.com; sipcore@ietf.org; Adam Roach <adam@nostrum.com>; sipcore-chairs@ietf.org
Subject: Re: Last Call: <draft-ietf-sipcore-status-unwanted-04.txt> (A SIP Response Code for Unwanted Calls) to Proposed Standard


I'm sorry to say that I do not think this mechanism is well thought out, I think it actually causes active harm to interoperability, and I think this document should be abandoned for a better (and simpler) solution to the problem, which I describe below.

I will note that I have not been following the discussion of this document except for it's introduction at the last plenary meeting, but I (and others) did give comments at that time that as far as I can tell were not taken into account. I did review the thread on the sipcore list regarding the difference between the new code and the 603 code. That thread does not address my concerns, and in fact in some way reinforces it. I have not reviewed other discussion on the list.

The purported purpose of this 666 mechanism is to allow additional semantics to be expressed beyond a simple 603 (Decline). That is a fine desire. However, instead of adding decent semantics to declining a call, 666 adds only one additional bit of information to 603, and that one bit ends up causing more semantic ambiguity: The user has still declined the call (just as 603 would have), and has added that the call is somehow unwanted (so a provider could act to prevent such calls in the future), but the user has not indicated the reason they indicate the call is unwanted. Is it because they want to add this calling party to a call block list? Is it that they want to reject all calls of this particular class (cf. draft-ietf-sipcore-callinfo-spam)? Is there some other handling that would be appropriate given the particular reason the user has rejected the call? The best a provider is going to be able to do is guess. The document admits the ambiguity in the semantics, saying that the provider will have to use heuristics to guess at what the user really wants. We should not be introducing a new mechanism that only adds to the semantic ambiguity and might end up with results that the user might specifically not want in a particular case. What I think was really intended all along was to have un-upgraded implementations treat these rejections just like 603, but add some semantics that upgraded implementations can use to determine what ought to be done in the future.

The right solution, IMO, is to simply add a header to the 603 response that indicates what the user means by their declining, and gives a real indication of how handle such calls in the future. Call it "Decline-Type" for argument sake. Just like the Retry-After header adds semantics to indicate when the caller might want to try an identical call again, this new header will indicate that the user never wants a call from this particular caller again (e.g., "Decline-Type: block-caller", which the service provider can definitively use to add the caller to a block list), or that this caller and every caller with a similar type should be rejected (e.g. "Decline-Type: block-caller-type; type=political", which the provider could definitively use to reject similar calls in the future), etc.. With this, there's no need for a bunch of MAYs such that appear in section 4, you get an extensible mechanism that could be used by any 603 response. You also get the added bonus that un-upgraded entities will continue to treat this just like every other 603 without a Retry-After header, which is exactly what you want.

To be clear, the three things I am concerned about are:

1.    The 666 mechanism leaves the decision of what is meant by "unwanted" to the provider, which will inevitably cause data loss through the use of heuristics. Adding a header to the 603 response is an extensible mechanism that could capture the single semantic bit of 666 and any future semantics that one wishes to add, without requiring the provider to guess. The provider gets definitive information that it can act on.

2.    The 666 mechanism limits the implementation of the mechanism to a 1-button choice and requires additional standardization work to use a different UI. Clearly 666 was designed around something akin to a "SPAM" button in the UI. But what if I want a field in my address book that says, "Permanently block this particular caller" (say, my ex-boyfriend or my annoying neighbor)? I don't want to indicate that these are spam calls because I don't want my provider applying heuristics to them. I want to send back a 603 with a header that says, "Block these whenever you see them, but only for me." I can think of all sorts of other-than-one-button UIs that someone might want to implement. 666 is tied to a particular UI. 603 with a header is extensible.

3.    The 666 mechanism will be treated as a 600 "Busy" error by un-upgraded callers and/or providers. That might imply to some implementations that they should try to re-dial (e.g., the provider using the auto-redial feature) or to engage in other poor behavior. 603 with no Retry-After header already has a semantic of "The call was rejected and I'm not telling you when a good time to call back is", so there is some hope that an un-upgraded caller is more likely to do the right thing.

Given the admittedly restricted review of the WG archive that I did, I didn't see anything to indicate that the WG fully considered the implications of 666 that I have outlined above. This is not simply a design preference; I believe the design of the proposed mechanism doesn't accomplish the goal and actually does some harm. Overall, 666 damages interoperability by introducing an ambiguous piece of information, which will lead to potential data loss (i.e., improperly applied heuristics), and will require adding a header in the future in order to accomplish the real goal. Adding a header is a simple mechanism, accomplishes the desired task, has extensibility, and doesn't cause the problems that 666 does. Please reconsider this, drop this document, and replace it by adding real semantics to the 603 response with an extensible header. It's a quick document to write (a bunch of the text in the current document can be reused) and it will not suffer the problems that 666 introduces. Otherwise, we're going to be right back where were when we started, needing to add a mechanism so that the user can really indicate what they mean. This is the wrong solution.

pr
--
Pete Resnick http://www.qualcomm.com/~presnick/<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.qualcomm.com_-257Epresnick_&d=DwMFAg&c=y0h0omCe0jAUGr4gAQ02Fw&r=FJcVoDkWM5EiVcV0ReX8lDU1XeHIYRHfarpk4MK59RE&m=ZsmZFFMTXYB11wQOAzumSkgmvAzLj_2Hn4Z58HTMBvE&s=tlEJ9fjpmuZLfEjlkXtf4tDxw4Bni6wK1arhT_2Zddg&e=>
Qualcomm Technologies, Inc. - +1 (858)651-4478

On 7 Mar 2017, at 18:23, The IESG wrote:

The IESG has received a request from the Session Initiation Protocol Core
WG (sipcore) to consider the following document:
- 'A SIP Response Code for Unwanted Calls'
<draft-ietf-sipcore-status-unwanted-04.txt> as Proposed Standard

The IESG plans to make a decision in the next few weeks, and solicits
final comments on this action. Please send substantive comments to the
ietf@ietf.org<mailto:ietf@ietf.org> mailing lists by 2017-03-21. Exceptionally, comments may be
sent to iesg@ietf.org<mailto:iesg@ietf.org> instead. In either case, please retain the
beginning of the Subject line to allow automated sorting.

Abstract

This document defines the 666 (Unwanted) SIP response code, allowing
called parties to indicate that the call or message was unwanted.
SIP entities may use this information to adjust how future calls from
this calling party are handled for the called party or more broadly.

The file can be obtained via
https://datatracker.ietf.org/doc/draft-ietf-sipcore-status-unwanted/<https://urldefense.proofpoint.com/v2/url?u=https-3A__datatracker.ietf.org_doc_draft-2Dietf-2Dsipcore-2Dstatus-2Dunwanted_&d=DwMFAg&c=y0h0omCe0jAUGr4gAQ02Fw&r=FJcVoDkWM5EiVcV0ReX8lDU1XeHIYRHfarpk4MK59RE&m=ZsmZFFMTXYB11wQOAzumSkgmvAzLj_2Hn4Z58HTMBvE&s=hy8D0YsflQHIyKQiWo_fdbP4Ah_Ej6vFervxifuVyJU&e=>

IESG discussion can be tracked via
https://datatracker.ietf.org/doc/draft-ietf-sipcore-status-unwanted/ballot/<https://urldefense.proofpoint.com/v2/url?u=https-3A__datatracker.ietf.org_doc_draft-2Dietf-2Dsipcore-2Dstatus-2Dunwanted_ballot_&d=DwMFAg&c=y0h0omCe0jAUGr4gAQ02Fw&r=FJcVoDkWM5EiVcV0ReX8lDU1XeHIYRHfarpk4MK59RE&m=ZsmZFFMTXYB11wQOAzumSkgmvAzLj_2Hn4Z58HTMBvE&s=kX6Ocb3l9f7SR-kaqL7gkLgF0bj11sm1YalrviswYQY&e=>

No IPR declarations have been submitted directly on this I-D.