<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [

<!ENTITY RFC2119 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2397 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2397.xml">
<!ENTITY RFC3261 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3261.xml">
<!ENTITY RFC3323 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3323.xml">
<!ENTITY RFC3326 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3326.xml">
<!ENTITY RFC3725 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3725.xml">
<!ENTITY RFC3966 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3966.xml">
<!ENTITY RFC3968 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3968.xml">
<!ENTITY RFC5039 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5039.xml">
<!ENTITY RFC5057 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5057.xml">
<!ENTITY RFC5359 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5359.xml">
<!ENTITY RFC6809 PUBLIC '' "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6809.xml">
<!ENTITY rfc4474bis PUBLIC '' "http://xml2rfc.tools.ietf.org/public/rfc/bibxml-ids/reference.I-D.ietf-stir-rfc4474bis.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std" docName="draft-ietf-sipcore-status-unwanted-06" ipr="trust200902">
    
    <!-- ***** FRONT MATTER ***** -->
    
    <front>
        <title abbrev="Status Unwanted">A SIP Response Code for Unwanted Calls</title>
        
        <!-- add 'role="editor"' below for the editors if appropriate -->
        
        <!-- Another author who claims to be an editor -->
        
        <author fullname="Henning Schulzrinne" initials="H."
            surname="Schulzrinne">
            <organization>FCC</organization>
            
            <address>
                <postal>
                    <street>445 12th Street SW</street>
                    <city>Washington</city>
                    <region>DC</region>
                    <code>20554</code>
                    <country>US</country>
                </postal>
                
                <phone></phone>
                
                <email>henning.schulzrinne@fcc.gov</email>
                
                <!-- uri and facsimile elements may also be added -->
            </address>
        </author>
        
        <date />
        
        <!-- Meta-data Declarations -->
        
        <area>ART</area>
        <workgroup>SIPCORE</workgroup>
        
        <keyword>SIP</keyword>
        <keyword>robocall</keyword>
        <keyword>unwanted</keyword>
        <keyword>response code</keyword>
        
        <abstract>
            <t>This document defines the 607 (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.</t>
        </abstract>
    </front>
    <!-- *********************************************************************** -->
    <middle>
        <section title="Introduction">

<t>In many countries, an increasing number of calls are unwanted <xref target="RFC5039"/>: they might be fraudulent, illegal telemarketing or the receiving party does not want to be disturbed by, say, surveys or solicitation by charities. Carriers and other service providers may want to help their subscribers avoid receiving such calls, using a variety of global or user-specific filtering algorithms. One input into such algorithms is user feedback. User feedback may be offered through smartphone apps, APIs or within the context of a SIP-initiated call. This document addresses feedback within the SIP call. Here, the called party either rejects the <xref target="RFC3261">SIP</xref> request as unwanted or terminates the session with a BYE request after answering the call. INVITE and MESSAGE requests are most likely to trigger such a response.</t>

<t>To allow the called party to express that the call was unwanted, this document defines the 607 (Unwanted) response code. The user agent of the called party, based on input from the called party or some UA-internal logic, uses this to indicate that this call is unwanted and that future attempts are likely to be similarly rejected. While factors such as identity spoofing and call forwarding may make authoritative identification of the calling party difficult or impossible, the network can use such a rejection -- possibly combined with a pattern of rejections by other callees and/or other information -- as input to a heuristic algorithm for determining future call treatment. The heuristic processing and possible treatment of persistently unwanted calls are outside the scope of this document.</t>

<t>As in <xref target="I-D.ietf-stir-rfc4474bis"/>, we use the term "caller identity" or "calling party identity" in this document to mean either a canonical address-of-record (AoR) SIP URI employed to reach a user (such as 'sip:alice@atlanta.example.com'), or a telephone number, which commonly appears in either a <xref target="RFC3966">tel URI</xref> or as the user portion of a SIP URI.</t>
</section>
        
<section anchor="normative" title="Normative Language">
            
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 <xref target="RFC2119"/>.</t>
</section>

<section title="Motivation">
    <t>None of the existing 4xx, 5xx or 6xx response codes signify that this SIP request is unwanted by the called party. For example, 603 (Decline) might be used if the called party is currently at dinner or in a meeting, but does not want to indicate any specific reason. As described in <xref target="RFC3261">Section 21.6.2</xref>, a 603 response may include a Retry-After header field to indicate a better time to attempt the call. Thus, the call is rejected due to the called party's (temporary) status. As described in <xref target="behavior"/>, the called party invokes the "unwanted call" user interface and 607 (Unwanted) response indicating that it is instead the caller's identity that is causing the call to be rejected.</t>
</section>

<section anchor="behavior" title="Behavior of SIP Entities">

<t>The response code 607 MAY be used in a failure response for an INVITE, MESSAGE, SUBSCRIBE or other out-of-dialog SIP request to indicate that the offered communication is unwanted. The response code MAY also be used as the value of the "cause" parameter of a SIP reason-value in a Reason header field <xref target="RFC3326"/>, typically when the called party user agent issues a BYE request terminating an incoming call or a forking proxy issues a CANCEL request after receiving a 607 response from one of the branches. (Including a Reason header field with the 607 status code allows the called party user agent that receives a CANCEL request to make an informed choice whether and how to include such calls in their missed-call list or whether to show an appropriate indication to the user.)</t>

<t>The SIP entities receiving this response code are not obligated to take any particular action beyond those appropriate for 6xx responses. Following the default handling for 6xx responses in <xref target="RFC5057"/>, the 607 response destroys the transaction. The service provider delivering calls or messages to the user issuing the response MAY take a range of actions, for example, add the calling party to a personal blacklist specific to the called party, use the information as input when computing the likelihood that the calling party is placing unwanted calls ("crowd sourcing"), initiate a traceback request, or report the calling party identity to consumer complaint databases. As discussed in Section <xref target="security"/>, reversing the 'unwanted' labeling is beyond the scope of this mechanism, as it will likely require a mechanism other than call signaling.</t>

<t>The user experience is envisioned to be somewhat similar to email spam buttons where the detailed actions of the email provider remain opaque to the user.</t>

<t>The mechanism described here is only one of many inputs likely to be used by call filtering algorithms operated by service providers, using data on calls from a particular identifier such as a telephone number to establish handling for future calls from the same identifier. Call handling for unwanted calls is likely to involve a combination of heuristics, analytics, and machine learning. These may use call characteristics such as call duration and call volumes for a particular caller, including changes in those metrics over time, as well as user feedback via non-SIP approaches and the mechanism described here. Implementations will have to make appropriate trade-offs between falsely labeling a caller as unwanted and delivering unwanted calls.</t>

<t>Systems receiving 607 responses could decide to treat pre-call and mid-call responses differently, given that the called party has had access to call content for mid-call rejections.</t>

<t>Depending on the implementation, the response code does not necessarily automatically block all calls from that caller identity. The same user interface action might also trigger addition of the caller identity to a local, on-device blacklist or graylist, e.g., causing such calls to be flagged or alerted with a different ring tone.</t>

<t>The actions described here do not depend on the nature of the SIP URI, e.g., whether it describes a telephone number or not; however, the same <xref target="RFC3323">anonymous SIP URI</xref> may be used by multiple callers and thus such URIs are unlikely to be appropriate for URI-specific call treatment. SIP entities tallying responses for particular callers may need to consider canonicalzing SIP URIs, including telephone numbers, as described in <xref target="I-D.ietf-stir-rfc4474bis"/>. The calling party may be identified in different locations in the SIP header, e.g., the From header field, P-Asserted-Identity or History-Info, and may also be affected by diverting services.</t>

<t>This document defines a SIP feature-capability <xref target="RFC6809"/>, sip.607, that allows the registrar to indicate that the corresponding proxy supports this particular response code. This allows the UA, for example, to provide a suitable user interface element, such as a "spam" button, only if its service provider actually supports the feature. The presence of the feature capability does not imply that the provider will take any particular action, such as blocking future calls. A UA may still decide to render a "spam" button even without such a capability if, for example, it maintains a device-local blacklist or reports unwanted calls to a third party.</t>

</section>

    <section anchor="IANA" title="IANA Considerations">
        <section title="SIP Response Code">
        <t>This document registers a new SIP response code. This response code is defined by the following information, which is to be added to the "Response Codes" sub-registry under
            http://www.iana.org/assignments/sip-parameters.</t>

        <t><list style="hanging">
            <t hangText="Response Code Number">607</t>
            <t hangText="Default Reason Phrase">Unwanted</t>
            <t hangText="Reference">[this RFC]</t>
            </list>
        </t>
        </section>
        
        <section title="SIP Global Feature-Capability Indicator">
            <t>This document defines the feature capability sip.607 in the "SIP Feature-Capability Indicator Registration Tree" registry defined in <xref target="RFC6809"/>.</t>
            <t><list style="hanging">
                <t hangText="Name">sip.607</t>
                <t hangText="Description">This feature-capability indicator, when included in a Feature-Caps header field of a REGISTER response, indicates that the server supports, and will process, the 607 (Unwanted) response code.</t>
                <t hangText="Reference">[this RFC]</t>
            </list>
            </t>
        </section>

    </section>
    
    <section anchor="security" title="Security Considerations">
        <t>If the calling party address is spoofed, users may report the caller identity as placing unwanted calls, possibly leading to the blocking of calls from the legitimate user of the caller identity in addition to the unwanted caller, i.e., creating a form of denial-of-service attack. Thus,  the response code SHOULD NOT be used for creating global call filters unless the calling party identity has been authenticated using <xref target="I-D.ietf-stir-rfc4474bis"/> as being assigned to the caller placing the unwanted call. (The creation of call filters local to a user agent is beyond the scope of this document.)</t>
        <t>Even if the identity is not spoofed, a call or message recipient might flag legitimate caller identities, e.g., to exact vengeance on a person or business, or simply by mistake. To correct errors, any additions to a personal list of blocked caller identities should be observable and reversible by the party being protected by the blacklist. For example, the list may be shown on a web page or the subscriber may be notified by periodic email reminders. Any additions to a global or carrier-wide list of unwanted callers needs to consider that any user-initiated mechanism will suffer from an unavoidable rate of false positives and tailor their algorithms accordingly, e.g., by comparing the fraction of delivered calls for a particular caller that are flagged as unwanted rather than just the absolute number, and considering time-weighted filters that give more credence to recent feedback.</t>
        <t>If an attacker on an unsecured network can spoof SIP responses for a significant number of call recipients, it may be able to convince the call filtering algorithm to block legitimate calls. Use of TLS to protect signaling mitigates against this risk.</t>
        <t>Since caller identities are routinely re-assigned to new subscribers, algorithms are advised to consider whether the caller identity has been re-assigned to a new subscriber and possibly reset any related rating. (In some countries, there are services that track which telephone numbers have been disconnected before they are re-assigned to a new subscriber.)</t>
        <t>Some call services such as <xref target="RFC3725">3PCC</xref> and <xref target="RFC5359">call transfer</xref> increase the complexity of identifying who (if anyone) should be impacted by the receipt of 607 within BYE.  Such services might cause the wrong party to be flagged or prevent flagging the desired party.</t>
        <t>For both individually-authenticated and unauthenticated calls, recipients of response code 607 may want to distinguish responses sent before and after the call has been answered, ascertaining whether either response timing suffers from a lower false-positive rate.</t>
    </section>

    <section title="Acknowledgements">
        <t>Tolga Asveren, Ben Campbell, Peter Dawes, Spencer Dawkins, Martin Dolly, Keith Drage, Vijay Gurbani, Christer Holmberg, Olle Johansson, Paul Kyzivat, Jean Mahoney, Marianne Mohali, Adam Montville, Al Morton, Denis Ovsienko, Brian Rosen, Brett Tate, Chris Wendt, Dale Worley and Peter Yee (Gen-ART reviewer) provided helpful comments.</t>
    </section>
    
</middle>

<!-- ********************************************************************************* -->

<back>
    <references title="Normative References">
        &RFC2119;
        &RFC3261;
        &RFC3326;
        &RFC6809;
    </references>
    <references title="Informative References">
        &RFC3323;
        &RFC3966;
        &RFC5057;
        &RFC5359;
        &RFC3725;
        &RFC5039;
        &rfc4474bis;
    </references>
</back>
</rfc>
