RFC 8197

A SIP Response Code for Unwanted Calls

๐Ÿ“… published July 2017, from ietf

RFC 8197: A SIP Response Code for Unwanted Calls ๐ŸŽ€

Okay bestie, this is RFC 8197, and it's giving official. ๐Ÿ’… It's a Standards Track doc from the Internet Engineering Task Force (IETF), written by H. Schulzrinne at the FCC and dated July 2017. It's ISSN 2070-1721, and it's part of the Internet Standards Track, so it's the real deal. โœจ

Abstract ๐Ÿ’œ

This doc defines the 607 (Unwanted) SIP response code, which lets called parties say that a call or message was unwanted. SIP entities can use that info to adjust how future calls from this calling party get handled for the called party, or more broadly. ๐Ÿฆ‹

Status of This Memo ๐ŸŒธ

This is an Internet Standards Track document. ๐Ÿ’–

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). More info on Internet Standards is in Section 2 of RFC 7841.

You can find info about the current status of this document, any errata, and how to give feedback on it at http://www.rfc-editor.org/info/rfc8197. ๐Ÿ”ฅ

Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved. ๐ŸŽ€

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as in effect on the date of publication of this document. Please review these documents carefully, because they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they are provided without warranty as described in the Simplified BSD License. ๐Ÿซถ

Table of Contents ๐Ÿงš

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
2.  Normative Language  . . . . . . . . . . . . . . . . . . . . .   3
3.  Motivation  . . . . . . . . . . . . . . . . . . . . . . . . .   3
4.  Behavior of SIP Entities  . . . . . . . . . . . . . . . . . .   3
5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
  5.1.  SIP Response Code . . . . . . . . . . . . . . . . . . . .   5
  5.2.  SIP Global Feature-Capability Indicator . . . . . . . . .   5
6.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   7
  7.1.  Normative References  . . . . . . . . . . . . . . . . . .   7
  7.2.  Informative References  . . . . . . . . . . . . . . . . .   7
Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .   8
Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   8

1. Introduction โœจ

Okay so, in lots of countries more and more calls are unwanted [RFC5039]. ๐Ÿ˜ญ They could be fraudulent or illegal telemarketing, or the receiving party just doesn't want to be disturbed by surveys or charity solicitations. Carriers and other service providers may want to help their subscribers avoid these calls, using a variety of global or user-specific filtering algorithms. One input into those algorithms is user feedback. User feedback may be offered through smartphone apps, APIs, or within the context of a SIP-initiated call.

This doc is all about feedback within the SIP call ๐Ÿ“ž. Here, the called party either rejects the SIP [RFC3261] 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. ๐Ÿ“

To let the called party say that the call was unwanted, this document defines the 607 (Unwanted) response code. The user agent (UA) of the called party uses it, based on input from the called party or some UA-internal logic, to indicate that this call is unwanted and that future attempts are likely to be similarly rejected. Factors like identity spoofing and call forwarding may make authoritative identification of the calling party difficult or impossible, and that's a lot. ๐Ÿ˜ตโ€๐Ÿ’ซ Still, 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. ๐Ÿ”ฎ

When this document says "caller identity," it uses "identity" in the same sense as [SIP-IDENTITY]. That means either a canonical address-of-record (AOR) SIP URI used to reach a user (such as sip:alice@atlanta.example.com), or a telephone number. Telephone numbers commonly show up in a tel URI [RFC3966] or as the user portion of a SIP URI. ๐Ÿ’œ

2. Normative Language ๐Ÿ’…

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. ๐ŸŽ€

3. Motivation ๐Ÿฆ‹

None of the existing 4xx, 5xx, or 6xx response codes signal 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 doesn't want to give any specific reason. As described in Section 21.6.2 [RFC3261], a 603 response may include a Retry-After header field to indicate a better time to try the call again. So the call is rejected because of the called party's (temporary) status. โฐ

As described in Section 4, though, the called party invokes the "unwanted call" user interface, and the 607 (Unwanted) response says that it's actually the caller's identity causing the call to be rejected. That's the difference, babe. ๐Ÿ‘‘

4. Behavior of SIP Entities ๐Ÿ’–

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 [RFC3326]. This is typical when the called party user agent issues a BYE request to terminate an incoming call, or when 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 lets the called party user agent that receives a CANCEL request make an informed choice about whether and how to include such calls in their missed-call list, or whether to show an appropriate indication to the user. ๐Ÿง )

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 [RFC5057], the 607 response destroys the transaction. ๐Ÿ’ฅ The service provider delivering calls or messages to the user who issued the response MAY take a range of actions. For example, it may 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's identity to consumer complaint databases. ๐Ÿ•ต๏ธโ€โ™€๏ธ As discussed in Section 6, reversing the 'unwanted' labeling is beyond the scope of this mechanism, since it will likely require a mechanism other than call signaling. ๐Ÿšง

The user experience is envisioned to be somewhat similar to email spam buttons, where the detailed actions of the email provider stay opaque to the user. ๐Ÿ“ง

The mechanism described here is only one of many inputs likely to be used by call-filtering algorithms operated by service providers. Those algorithms use data on calls from a particular identifier, such as a telephone number, to set up 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. โš–๏ธ

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. ๐ŸŽง

Depending on the implementation, the response code does not necessarily block all calls from that caller identity automatically. The same user interface action might also add 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. ๐Ÿ””

The actions described here don't depend on the nature of the SIP URI, e.g., whether or not it describes a telephone number. However, the same anonymous SIP URI [RFC3323] may be used by multiple callers, so such URIs are unlikely to be appropriate for URI-specific call treatment. ๐Ÿซฅ SIP entities tallying responses for particular callers may need to consider canonicalizing SIP URIs, including telephone numbers, as described in [SIP-IDENTITY]. 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 it may also be affected by diverting services. ๐Ÿ”€

This document defines a SIP feature-capability [RFC6809], sip.607, that lets the registrar indicate that the corresponding proxy supports this particular response code. ๐Ÿท๏ธ That means the UA can, for example, show 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. ๐Ÿ™Œ


Part 1 done, bestie! ๐ŸŒˆ Part 2 picks up with Section 5 (IANA Considerations ๐Ÿ“‹), then Security Considerations, References, Acknowledgements, and Author's Address. Stay tuned ๐Ÿ’œ

6. Security Considerations ๐Ÿ”๐Ÿ’…

okay bestie, this section is SO important so pay attention ๐Ÿ‘€โœจ the whole vibe is "don't let your block list become a weapon" ๐Ÿ˜ญ๐Ÿซถ

If the calling party address is spoofed, users may report the caller identity as placing unwanted calls ๐Ÿ“ต, and that can lead to blocking calls from the legitimate user of that caller identity too, along with the unwanted caller. Literally a denial-of-service attack in disguise ๐Ÿ’€. So the response code SHOULD NOT be used for creating global call filters unless the calling party identity has been authenticated using [SIP-IDENTITY] as being assigned to the caller placing the unwanted call. (Making call filters that only live on one user agent is beyond the scope of this document ๐Ÿงš.)

Even if the identity is not spoofed, a call or message recipient might flag legit caller identities ๐Ÿ™…โ€โ™€๏ธ, like to get revenge on a person or business, or just by mistake ๐Ÿ™ˆ. To fix 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 might be shown on a web page, or the subscriber might get periodic email reminders ๐Ÿ“ง. Any additions to a global or carrier-wide list of unwanted callers need to account for the fact that any user-initiated mechanism will suffer from an unavoidable rate of false positives ๐Ÿ˜ค, so tailor the algorithms accordingly. For example, compare the fraction of delivered calls for a particular caller that get flagged as unwanted, rather than just the absolute number, and consider time-weighted filters that give more credence to recent feedback โฐ๐Ÿ’–.

If an attacker on an unsecured network can spoof SIP responses for a significant number of call recipients, they might be able to convince the call-filtering algorithm to block legitimate calls ๐Ÿ˜ฑ. Using TLS to protect signaling mitigates this risk ๐Ÿ”’โœจ.

Since caller identities are routinely reassigned to new subscribers, algorithms are advised to consider whether the caller identity has been reassigned 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 get reassigned to a new subscriber ๐ŸŒ.)

Some call services, like 3PCC [RFC3725] and call transfer [RFC5359], make it way more complicated to figure out who (if anyone) should be impacted by receiving 607 within BYE ๐ŸŒ€. These services might cause the wrong party to get flagged, or stop the desired party from getting flagged ๐Ÿ™ƒ.

For both individually authenticated and unauthenticated calls, recipients of response code 607 may want to tell apart responses sent before and after the call has been answered ๐Ÿง, and check whether either response timing has a lower false-positive rate ๐Ÿ“Š๐Ÿฆ‹.

7. References ๐Ÿ“š๐ŸŽ€

7.1. Normative References ๐Ÿ’œ

7.2. Informative References ๐ŸŒธ

Acknowledgements ๐Ÿซถ

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 ๐Ÿ’– the squad really showed up for this one ๐Ÿ‘‘.

Author's Address ๐Ÿงš

Henning Schulzrinne FCC 445 12th Street SW Washington, DC 20554 United States of America

Email: henning.schulzrinne@fcc.gov ๐Ÿ“ฎ

๐Ÿ“ฆ where this page comes from