Internet-Draft                                          Daniele Giordano
Category: Best Common Practice

20 August 2008
Expires: 11 Febbruary 2009


            Call on hold for telephony applications of SIP protocol
                draft-giordano-sip-call-hold-revision-01

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   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."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.



Copyright Notice

   Copyright (C) The IETF Trust (2008).

Abstract

   Many RFCs and Internet Drafts describe call on hold methods adopted
   in SIP signaling protocol. The actual implementation may not always
   be ideal for telephony applications (reasons are explained below).
   This draft proposes a revision of call on hold method for SIP
   protocol.







Giordano                                                        [Page 1]

Internet-Draft  Call on hold for telephony applications of SIP protocol


Table of Contents

   1.  Conventions Used In This Document . . . . . . . . . . . . . . . 3
   2.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . . 3
   3.  The actual implementation . . . . . . . . . . . . . . . . . . . 3
   4.  New Implementation and Operations . . . . . . . . . . . . . . . 4
     4.1 Example of Holding process. . . . . . . . . . . . . . . . . . 4
   5.  Security Considerations . . . . . . . . . . . . . . . . . . . . 6
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 6
     7.1.  Normative References  . . . . . . . . . . . . . . . . . . . 6
     7.2.  Informative References  . . . . . . . . . . . . . . . . . . 6
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . . . 7
   Intellectual Property and Copyright Statements  . . . . . . . . . . 7




































Giordano                                                        [Page 2]

Internet-Draft  Call on hold for telephony applications of SIP protocol



1.   Conventions Used In This Document

   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].



2.  Introduction

   Many RFCs and Internet Drafts describe call on hold methods adopted
   in SIP signaling protocol. The actual implementation may not always
   be ideal for telephony applications (reasons are explained below).
   This draft proposes a revision of actual call on hold method for 
   SIP protocol used in telephony applications.



3.  The actual implementation

   The actual implementations of call on hold method are described in
   many documents.

   [RFC2543] paragraph B.5 "Putting Media Streams on Hold" establishes:
   If a party in a call wants to put the other party "on hold", i.e.,
   request that it temporarily stops sending one or more media streams,
   a party re-invites the other by sending an INVITE request with a
   modified session description. The session description is the same as
   in the original invitation (or response), but the "c" destination
   addresses for the media streams to be put on hold are set to zero
   (0.0.0.0).


   [RFC3264] paragraph 8.4 "Putting a Unicast Media Stream on Hold"
   establishes:
   Typically, when a user "presses" hold, the agent will generate an
   offer with all streams in the SDP indicating a direction of sendonly,
   and it will also locally mute, so that no media is sent to the far
   end, and no media is played out.

   
   [RFC3725] paragraph 5 "Recommendations" establishes:
   ... Several of these flows use a "black hole" connection address of
   0.0.0.0. This is an IPv4 address with the property that packets sent
   to it will never leave the host which sent them; they are just
   discarded. ... In most cases, including the recommended flows, user A
   will hear silence while the call to B completes.  This may not always
   be ideal. It can be remedied by connecting the caller to a
   music-on-hold source while the call to B occurs.

Giordano                                                        [Page 3]

Internet-Draft  Call on hold for telephony applications of SIP protocol



   [RFC3725] paragraph 7 "Continued Processing" establishes:
   .... In particular, the version number in the SDP will need to be
   changed by the controller in certain cases. If the controller should
   issue an SDP offer on its own (for example, to place a call on hold),
   it will need to increment the version number in the SDP offer.


   [draft-ietf-sipping-sip-offeranswer] paragraph 5.3 "Hold and Resume
   of media" establishes:
   ...If UA2 has previously been "placed on hold" by UA1, via receipt of
   "a=sendonly", then it may initiate its own hold by sending a new
   offer containing "a=sendonly" to UA1. Upon receipt of that, UA1 will
   answer with "a=inactive" because that is the only valid answer that
   reflects its desire not to receive media.


   [draft-ietf-sip-service-examples] gives examples of hold methods in
   various SIP services like call hold, consultation hold, attended
   transfer, etc.

   How explained in all these documents hold is unidirectional in nature
   so a UA that places the other party on hold will stop sending media.
   The result is silence on the holded side until the transferred-to
   answers the call or the holder resume that.
   This is not ideal. An alternative is the use of a music on hold
   source but it's not a mandatory component in a SIP environment.



4.  New Implementation and Operations

   When a UA receives a SIP message which places the call on hold and no
   music on hold sources are available It MUST play an holding tone
   locally in according to the regional phone line parameters.
   When the place on hold state is modified (e.g. the call is resumed)
   the UA MUST stop the holding tone.


4.1 Example of Holding process

   In this example setup and tear down messages are omitted and It 
   assumes that the call is already established. Dashed lines (---)
   represent control messages while double dashed lines (===) represent
   media paths between network elements.





Giordano                                                        [Page 4]

Internet-Draft  Call on hold for telephony applications of SIP protocol



            Alice           Proxy            Bob
             
             |                |              |
             |    Both way RTP Established   |
             |<=============================>|
             |                |INVITE(hold)  |
             |INVITE(hold)    |<-------------|
             |<---------------|              |
             |    200 OK      |              |
             |--------------->|   200 OK     |
             |                |------------->|
             |                |     ACK      |
             |     ACK        |<-------------|
             |<---------------|              |
             |                |              |
             |           No RTP Sent!        |
             |                |              |
      ----------------        |              |
      | play holding |        |              |
      |     tone     |        |              |
      ----------------        |              |
             |                |              |
             |                |              |
             |                |              |
             |                |              |
             |                |  INVITE      |
             |   INVITE       |<-------------|
             |<---------------|              |
             |   200 OK       |              |
             |--------------->|  200 OK      |
             |                |------------->|
             |                |    ACK       |
             |     ACK        |<-------------|
             |<---------------|              |
             |                |              |
      ----------------        |              |
      | stop holding |        |              |
      |     tone     |        |              |
      ----------------        |              |
             |                |              |
             |    Both way RTP Established   |
             |<=============================>|
             |                |              |
             


   In this scenario, Alice and Bob are talking, then Bob places the 
   call on hold. No RTP packets are sent and no music on hold sources
   are available. Alice's UA play the holding tone locally.



Giordano                                                        [Page 5]

Internet-Draft  Call on hold for telephony applications of SIP protocol


5.  Security Considerations

   This document is not directly concerned with security.



6.  IANA Considerations

   None.



7.  References

7.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

7.2.  Informative References

   [RFC2543]  M. Handley, H. Schulzrinne, E. Schooler, J. Rosenberg
             "SIP: Session Initiation Protocol", RFC2543, March 1999.

   [RFC3264]  J. Rosenberg, H. Schulzrinne, "An Offer/Answer Model with
            the Session Description Protocol (SDP)", RFC3264, June 2002.

   [RFC3725]  J. Rosenberg, J. Peterson, H. Schulzrinne, G. Camarillo
      "Best Current Practices for Third Party Call Control (3pcc) in the
      Session Initiation Protocol (SIP)", RFC3725, BCP85, April 2004.

   [draft-ietf-sipping-sip-offeranswer] T. Sawada, P. Kyzivat, "SIP
      (Session Initiation Protocol) Usage of the Offer/Answer Model",
      October 2007.

   [draft-ietf-sip-service-examples] A. Johnston, R. Sparks, 
       C. Cunningham, S. Donovan, K. Summers, "Session Initiation
       Protocol Service Examples", July 2007.









Giordano                                                        [Page 6]

Internet-Draft  Call on hold for telephony applications of SIP protocol


Author's Address

   Giordano Daniele
   Email: d.giordano@fastpiu.it


Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).


Giordano                   Expires 11 Feb 2009                   [Page 7]