SIPPING R. Avasarala, Ed.
Internet-Draft S. Saha
Intended status: Informational Motorola
Expires: July 28, 2012 V. Pascual
Tekelec
January 27, 2012

None
A Session Initiation Protocol (SIP) Reason Header extension for dynamic Incoming Communication Barring draft-avasarala-sipping-reason-header-dynamic-icb-00.txt

Abstract

The 3GPP, as part of the MITE work item, is defining the Multimedia Telephony service and other Supplementary services using the IP Multimedia Core Network framework. Supplementary services include Incoming and Outgoing Communication Barring. This document describes a new set of procedures for Incoming Communication Barring to allow terminating users to dynamically block unwanted incoming communications. A new extension to SIP reason header is also described.

The IETF has been notified of intellectual property rights claimed in regard to some or all of the specification contained in this document. For more information consult the online list of claimed rights.

Status of this Memo

This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on July 28, 2012.

Copyright Notice

Copyright (c) 2012 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) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.


Table of Contents

1. Introduction

3GPP is currently maintaining and specifying multimedia telephony services and supplementary services. As a part of this effort, the procedures for Incoming and Outgoing Communication barring including Outgoing and Incoming communication barring procedures are defined in [3GPP.22.173]. However, the current procedures do not allow terminating users to dynamically block unwanted incoming communications.

This document proposes a mechanism to enable called users to block unwanted incoming communications in realtime. It is achieved by extending the SIP Reason header to be included in the SIP BYE and CANCEL requests for blocking a calling identity from further calling.

Also this document defines mechanisms for the called users to specify block criteria for blocking the calling users. The blocking criteria could include:

  1. Blocking calling users permanently so that the caller can never call the terminating user again
  2. Blocking calling users for a certain period of time

Further this document also defines mechanism for blocking the callers either during the call alerting phase or during call termination time.

2. Terminology

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 [RFC2119] and indicate requirement levels for compliant implementations.

The other concepts used in this document are compatible with [RFC3261] and [RFC3326]

3. Caller Identity Blocking Events

As mentioned previously the blocking events occur at the terminating user agents. The terminating user agents trigger the SIP BYE or CANCEL method with the enhanced SIP Reason header for caller identity blocking when they wish to block the caller from further calling.

3.1. Blocking caller identity when caller identity is known

Here the identity of the caller is known to the called user and the called user can trigger the BYE or CANCEL request with the SIP Reason header for caller identity blocking and get the caller blocked from further calling.

3.2. Blocking caller identity when caller identity is unknown

Sometimes the calls from telemarketers or other businesses have vague identities or just names like "CountryClub" or "Unknown" and it would be impossible for the called users to block such callers using those identities. In such cases, the servers need to fetch the actual identity of the caller and use that identity for blocking callers.

4. Reason header cause codes and semantics

This document defines the following new protocol value for the protocol field of the Reason header defined in [RFC3326]

      
      block: The cause parameter contains the block code.
      
    

We define the following block cause codes:

      
   Value   Default Text          Description
   
     1     Block permanently     Block the calling user permanently
     2     Block temporarily     Block the calling user for a temporary
                                 period of time 
      
    

Examples are:

      
  Reason: block; cause=1; text="Hate This Guy"; 
                          uri="sip:telem@domain.com; Expires=99999
  Reason: block; cause=2; text="Out on Vacation"; 
                          uri="sip:Bob@example.com; Expires=604800        
  Reason: block; cause=2; text="greylisted"; 
                          uri=sip:Alice@domain.com; Expires=3600
                          
               
      
    

Sections 4.1 and 4.2 provide use cases and extended definitions for the above two cause codes.

4.1. Block Permanently Reason Code

A more elaborate description of Block Permanently Reason Code cause=1 is as follows:

The called user intends to block the calling user permanently to prevent further calling.

An example of this header value would be:

Reason: block; cause=1; text="Telemarketer"; uri="sip:user@domain.com; Expires=99999

This implies that the called user has identified the calling user identity identified by "uri" parameter defined in [RFC3261] as a Telemarketer and wants to block the caller from further calling. So here putting a value of "99999" for Expires parameter implies the blocking is for permanent duration.

The message flow for this block type is depicted in Figure

4.2. Block Temporarily Reason Code

A more elaborate description of Block Temporarily Reason Code cause=2 is as follows:

The called user intends to block the calling user for a temporary period.

An example of this usage would be:

Reason: block; cause=2; text="Out on Vacation"; Expires=3600

This implies that the called user is Out on Vacation and wants to block the incoming calls from the caller Till the called user returns. The date until which the block is effective is mentioned using the Expires parameter and the identity of the calling user is identified by "uri" parameter defined in [RFC3261]

So here the block period is mentioned in Expires parameter implies the blocking is effective from the time of registration till the value specified in Expires parameter.



The message flow for this block type is depicted in Figure

5. Examples of Blocking events

5.1. Blocking caller during ringing phase

As mentioned earlier, the called user (UAS) can block the incoming caller (UAC) during ringing phase by looking at the number displayed on the phone. Below is the call flow for blocking a caller (UAC) in ringing phase

    
   
  Alice                      Proxy                      Bob
   
   |   INVITE                |                          |
   |------------------------>|   INVITE                 |
   |                         |------------------------->|
   |                         |   180 RINGING            |
   |    180 RINGING          |<-------------------------|
   |<------------------------|                          |
   |                         |                          |
   | +------------------------------------------------+ |
   | | Looking at Caller ID, the called user decides  | |
   | | to block the calling user from further calling | |
   | +------------------------------------------------+ |
   |                                                    |
   |                               4xx                  |
   |        4xx              |<-------------------------|
   |<------------------------|Reason:block; cause=1     |
   |                         | text="Hate This Guy"     |
   |                         | uri="sip:Alice@domain.com|
   |                         | Expires=99999            |
   |----------------------------------------------------|
   
   
  

Here the UAS sends a 4xx message with the enhanced Reason header indicating block semantics.

5.2. Blocking caller during call termination phase

Here the called user (UAS) blocks the incoming caller (UAC) during the call termination phase - i.e at the time of termination of the call

     
  Bob                      Proxy                       Carol
   
   |   INVITE                |                          |
   |------------------------>|   INVITE                 |
   |                         |------------------------->|
   |                         |   180 RINGING            |
   |    180 RINGING          |<-------------------------|
   |<------------------------|                          |
   |                         |   200 OK                 |
   |    200 OK               |<-------------------------|
   |<------------------------|                          |
   |        In Conversation                             |
   |<==================================================>|
   |                                                    |
   | +-------------------------------------------------+|
   | | Here the called user (UAS) decides to block the ||
   | | the caller from further calling                 ||
   | +-------------------------------------------------+|
   |                                                    |
   |                         |    BYE                   |
   |                         |<-------------------------|
   |    BYE                  |Reason: block; cause=2    |
   |<------------------------| text="In Meeting"        |
   |                         | uri="sip:bob@example.com |  
   |                         | Expires=3600             |
   |                         |                          |
   |    200 OK               |                          |
   |------------------------>|      200 OK              |
   |                         |------------------------->|
   
                                                                                                                                
 

6. Security Considerations

Eavesdropping on this header field should not prevent proper operation of the SIP protocol, although some domains utilizing this mechanism for notifying and synchronizing SIP elements will likely want the integrity to be assured. It is therefore RECOMMENDED to apply integrity protection when using this header to prevent unwanted changes to the field and snooping of the messages. The accepted choices to provide integrity protection in SIP are TLS and S/MIME. If a caller manages to impersonate a calling party (i.e. identity impersonation), it could trigger called parties to block incoming calls from the supplanted identity.

7. IANA Considerations

This document adds to one existing IANA Registry and creates one new Registry. The existing IANA Registry for the SIP Reason Header is as follows:

         
Protocol Value   Protocol Cause            Reference
--------------   --------------            ---------
 SIP              Status code               RFC 3261
 Q.850            Cause value in decimal    ITU-T Q.850
 
 This document adds to that Registry with the following entry 
 (including the '*' comment)
 
 Protocol Value  Protocol Cause            Reference
 --------------  --------------            ----------
 block           Cause value in decimal*   RFCXXXX
 
 Parameter: Expires  Defined in RFC3261
 Parameter: uri      Defined in RFC3261
 
 * See the separate "block" Registry for default reason-text
   strings
   
  
 

The cause values created by the Block protocol namespace in this document are defined in Section Section 7.1.

Each cause value has a Reason-text string as a general description of what the cause value is for, This is shown for the existing Reason header in Section 2 of [RFC3326] Before this document, the Reason-text was taken from the SIP Response code string from all SIP Response codes, or the default description from Q.850 cause codes. Currently, there is no place to register new reason-text strings other than from those two sources. Because this document defines a new Reason header protocol namespace, a new IANA Registry is created in Section 7.2 just for this and future Reason header protocol namespaces (other than SIP Response codes or Q.850 cause values) to register their respective general descriptive text strings. These text strings are non-binding and merely the default for human understanding, but they are deemed important enough to have their own Registry

7.1. Block Namespace Registry

RFC [xxxx] (this document) creates the new SIP Reason header [RFC3326] protocol namespace: "block", with 2 defined cause codes.

In instances where this namespace is used for permanently blocking a caller at the UA, the following syntax shall be used (the reason-text is a default string, it is not mandatory, and may be different):

                                                            
      
      Reason: block; cause=1; text="block permanently";
      uri="sip:user@domain.com"; Expires=NNNNN
      
      The value NNNNN is 99999 indicating a permanent block
      
    

Section 4 of this document describes in detail the semantics of this cause code.

The default text is part of a new IANA Registry for default text strings for any new protocol namespace cause code. See Section Section 7.2 for details.

In instances where this namespace is used for temporarily blocking a caller at the UA, the following syntax shall be used (the reason-text is a default string, it is not mandatory, and may be different):

    
Reason: block; cause=2; text="block temporarily"; 
         uri="sip:user@domain.com"; Expires=XYZ
         
The value XYZ indicates time of block in seconds
                                                        
 

7.2. Default Reason-Text IANA Registry for the SIP Reason header

Below is the creation of a new IANA Registry for SIP Reason Header reason-text strings, associated with their respective protocol type and Reason-param cause values. Per RFC 3326, the Reason-text string is a quoted default string with only human understandability meant. These strings can be changed by local policy

      
      
              Reason-
 Protocol     param      Reason-Text         Reference
 --------     -------    ------------        ---------
 Block        Cause=1    Block permanently   RFC XXXX [this document]
 Block        Cause=2    Block temporarily   RFC XXXX [this document]
                           

      
    

8. Acknowledgements

The Authors would like to thank Samir Saklikar for initial contribution, to Jette Alan and Ian Doig for providing the support in 3GPP and to Joachim Charzinki for valuable comments and suggestions.

9. References

9.1. Normative References

[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.
[3] Schulzrinne, H., Oran, D. and G. Camarillo, "The Reason Header Field for the Session Initiation Protocol (SIP)", RFC 3326, December 2002.

9.2. Informative References

[1] 3GPP, "IP Multimedia Core Network Subsystem (IMS) Multimedia Telephony Service and supplementary services; Stage 1", 3GPP TS 22.173 10.3.0, April 2011.

Appendix A. Change Log

New document

Appendix B. Open Issues

Some (offline?) mechanism for unblocking user identities is expected

Authors' Addresses

Ranjit Avasarala editor Motorola India Pvt Ltd Bagamane Tech Park, C V Raman Nagar Bangalore , 560093 India EMail: ranjit@motorola.com
Subir Saha Motorola India Pvt Ltd Bagamane Tech Park, C V Raman Nagar Bangalore , 560093 India EMail: subir.saha@motorola.com
Victor Pascual Tekelec Am Borsigturm 11 Berlin , D13507 Germany EMail: victor@iptel.org