Internet DRAFT - draft-lindquist-sip-rtsp

draft-lindquist-sip-rtsp






Network Working Group                                       J. Lindquist
Internet-Draft                                                J. Maenpaa
Intended status: Informational                                  Ericsson
Expires: December 11, 2010                                  P. Rajagopal
                                                                Motorola
                                                               X. Marjou
                                                   France Telecom Orange
                                                            June 9, 2010


   Controlling Session Initiation Protocol (SIP)-Established Content
    Delivery Channels Using the Real-Time Streaming Protocol (RTSP)
                    draft-lindquist-sip-rtsp-02.txt

Abstract

   The Session Initiation Protocol (SIP) is widely used for establishing
   multimedia sessions, whereas the Real Time Streaming Protocol (RTSP)
   is used in streaming media systems.  RTSP has a dual role: it
   establishes a media session for the delivery of streaming media as
   well as controls the streaming session once it has been set up.
   Since SIP is also used for session establishment, there exists an
   overlap between the functionality provided by SIP and RTSP.  In this
   document, we describe a model adopted by ETSI TISPAN, 3GPP, and Open
   IPTV Forum (OIPF) in which SIP and the SDP offer/answer model are
   used to set up a streaming session with an RTSP control channel and
   one or more media delivery streams.  Such a model is beneficial since
   it allows the reuse of current architecture and functionality (e.g.,
   authentication, charging, and QoS) established around SIP for RTSP-
   based streaming.  The model benefits applications such as Internet
   Protocol Television (IPTV).  In addition to the model, the document
   specifies two new variants of RTSP.

Status of this Memo

   This Internet-Draft is submitted 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."




Lindquist, et al.       Expires December 11, 2010               [Page 1]

Internet-Draft           Combining SIP and RTSP                June 2010


   This Internet-Draft will expire on December 11, 2010.

Copyright Notice

   Copyright (c) 2010 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.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.























Lindquist, et al.       Expires December 11, 2010               [Page 2]

Internet-Draft           Combining SIP and RTSP                June 2010


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  5
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  7
   3.  Generic SIP-based Video Delivery Architectures . . . . . . . .  8
   4.  Motivation . . . . . . . . . . . . . . . . . . . . . . . . . .  9
     4.1.  Reuse of Features of Existing Architectures  . . . . . . .  9
       4.1.1.  Authentication, Authorization, and Accounting
               Capabilities . . . . . . . . . . . . . . . . . . . . .  9
       4.1.2.  Quality of Service and Resource Reservation
               Capabilities . . . . . . . . . . . . . . . . . . . . .  9
       4.1.3.  Security Features  . . . . . . . . . . . . . . . . . . 10
       4.1.4.  NAT Traversal  . . . . . . . . . . . . . . . . . . . . 10
     4.2.  Advanced Media Applications  . . . . . . . . . . . . . . . 10
   5.  High-level Procedures  . . . . . . . . . . . . . . . . . . . . 10
     5.1.  Summary of the Procedures  . . . . . . . . . . . . . . . . 11
     5.2.  Details of the Procedures  . . . . . . . . . . . . . . . . 11
       5.2.1.  Establishment of Content Control and Content
               Delivery Channels  . . . . . . . . . . . . . . . . . . 11
       5.2.2.  Modification of Content Delivery Channels  . . . . . . 13
       5.2.3.  Teardown of Content Control Channel and the
               Associated Content Delivery Channel(s) . . . . . . . . 15
   6.  Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 16
     6.1.  Content Control Protocol Accessing Resources
           Established by Session Management Protocol . . . . . . . . 16
     6.2.  Use of Transport Addresses in Content Control and
           Session Management Protocols . . . . . . . . . . . . . . . 16
     6.3.  Session Termination  . . . . . . . . . . . . . . . . . . . 17
   7.  Design Goals . . . . . . . . . . . . . . . . . . . . . . . . . 17
   8.  Combining SIP/SDP and RTSP . . . . . . . . . . . . . . . . . . 18
     8.1.  Method 1: Lightweight RTSP without Session Setup
           Semantics  . . . . . . . . . . . . . . . . . . . . . . . . 18
       8.1.1.  Session Establishment Initiated by UE  . . . . . . . . 18
       8.1.2.  Session Establishment Initiated by Controller  . . . . 20
       8.1.3.  Session Termination  . . . . . . . . . . . . . . . . . 22
       8.1.4.  Discussion on the Requirements . . . . . . . . . . . . 23
     8.2.  Method 2: Full RTSP  . . . . . . . . . . . . . . . . . . . 25
       8.2.1.  Session Establishment Initiated by UE  . . . . . . . . 25
       8.2.2.  Session Establishment Initiated by Controller  . . . . 26
       8.2.3.  Session Termination  . . . . . . . . . . . . . . . . . 27
       8.2.4.  Discussion on the Requirements . . . . . . . . . . . . 28
   9.  Establishment of Content Control and Content Delivery
       Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
     9.1.  Procedures at the SDP Offerer  . . . . . . . . . . . . . . 29
       9.1.1.  UE as the SDP Offerer  . . . . . . . . . . . . . . . . 29
     9.2.  Procedures at SDP Answerer . . . . . . . . . . . . . . . . 31
       9.2.1.  Controller as SDP Answerer . . . . . . . . . . . . . . 31
     9.3.  Modification of Content Delivery Channel(s)  . . . . . . . 32



Lindquist, et al.       Expires December 11, 2010               [Page 3]

Internet-Draft           Combining SIP and RTSP                June 2010


   10. Content Control Protocol . . . . . . . . . . . . . . . . . . . 32
     10.1. Lightweight RTSP . . . . . . . . . . . . . . . . . . . . . 32
     10.2. Procedures at the UE . . . . . . . . . . . . . . . . . . . 33
       10.2.1. Media Setup Procedure  . . . . . . . . . . . . . . . . 33
       10.2.2. Media Playback Initiation Procedure  . . . . . . . . . 33
       10.2.3. Media Playback Modification Procedure  . . . . . . . . 34
       10.2.4. Media Playback Information Retrieval and Setting
               Procedure  . . . . . . . . . . . . . . . . . . . . . . 34
       10.2.5. Media Event Notification Procedure . . . . . . . . . . 34
       10.2.6. Media Teardown Procedure . . . . . . . . . . . . . . . 34
     10.3. Procedures at Media Server . . . . . . . . . . . . . . . . 34
   11. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
     11.1. Content on Demand Session Establishment Using
           Lightweight RTSP (Method 1)  . . . . . . . . . . . . . . . 35
     11.2. Content on Demand Session Establishment Using Full
           RTSP (Method 2)  . . . . . . . . . . . . . . . . . . . . . 37
     11.3. Content on Demand Session Termination Using
           Lightweight RTSP (Method 1)  . . . . . . . . . . . . . . . 40
     11.4. Content on Demand Session Termination Using Full RTSP
           (Method 2) . . . . . . . . . . . . . . . . . . . . . . . . 41
   12. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 42
   13. Security Considerations  . . . . . . . . . . . . . . . . . . . 43
     13.1. Man-in-the-middle Attack . . . . . . . . . . . . . . . . . 43
     13.2. Session Hijacking  . . . . . . . . . . . . . . . . . . . . 43
     13.3. Privacy Considerations . . . . . . . . . . . . . . . . . . 43
   14. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 43
     14.1. Registration of the 'TCP/ETSI_RTSP' and
           'TCP/TLS/ETSI_RTSP' SDP 'proto' Values . . . . . . . . . . 43
     14.2. Registration of the SDP 'etsi_rtsp-uri' Attribute  . . . . 44
     14.3. Registration of the SDP 'etsi_rtsp-session' Attribute  . . 44
     14.4. Registration of the SDP 'etsi_rtsp-offset' Attribute . . . 45
     14.5. Registration of the SDP 'etsi_rtsp-version' Attribute  . . 45
   15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 46
   16. References . . . . . . . . . . . . . . . . . . . . . . . . . . 46
     16.1. Normative References . . . . . . . . . . . . . . . . . . . 46
     16.2. Informative References . . . . . . . . . . . . . . . . . . 46
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 48














Lindquist, et al.       Expires December 11, 2010               [Page 4]

Internet-Draft           Combining SIP and RTSP                June 2010


1.  Introduction

   The Session Initiation Protocol (SIP) [RFC3261] is a widely-used
   session establishment and rendezvous protocol.  Many existing systems
   have established mechanisms such as authentication, charging, and
   Quality of Service (QoS) around SIP.  The Real Time Streaming
   Protocol (RTSP) [RFC2326], in turn, is a protocol for use in
   streaming media systems.  RTSP allows a client to remote control a
   streaming media server by issuing commands such as PLAY and PAUSE.
   RTSP has a dual role: it establishes a media session for the delivery
   of streaming media as well as controls the streaming session once it
   has been set up.  Since SIP is also used for session establishment,
   there exists an overlap between the functionality provided by SIP and
   RTSP.

   When using RTSP in systems that have established mechanisms such as
   authentication, charging, and QoS around SIP, one needs to implement
   these mechanisms for RTSP as well.  In this document, we argue that
   it would be more efficient to reuse the mechanisms that already exist
   for SIP.  Therefore, we describe a model adopted by European
   Telecommunications Standards Institute (ETSI) Telecommunications and
   Internet converged Services and Protocols for Advanced Networking
   (TISPAN), in which SIP is used to establish the streaming session.
   In this model, SIP with SDP offer/answer exchange [RFC3264] is used
   to set up an RTSP media control channel and one or more media
   delivery streams.  The media delivery streams can be for instance
   Real Time Protocol (RTP) streams.  Thus, in this approach, RTSP is
   used to control the media streams that have been set up with SIP.
   The TISPAN specifications allow for both full and partial support of
   the RTSP RFC [RFC2326] as part of the IPTV service.  In the case of
   partial support of RTSP, a lightweight version of RTSP without
   session setup semantics is used, whereas in the full support
   scenario, full RTSP with session setup semantics is used.  In
   addition to TISPAN, the 3rd Generation Partnership Project (3GPP)
   [3GPP TS 26.237] and the Open IPTV Forum (OIPF) [OIPF Volume 4] use
   the same model for using SIP to establish an RTSP control channel.
   The solution presented in this document is required by a growing
   number of Internet Protocol Television (IPTV) implementations.

   It should be noted that a model in which SIP and SDP offer/answer
   exchange is used to establish a control channel is by no means a new
   one.  As an example, SIP with SDP offer/answer is used to establish a
   Binary Floor Control Protocol (BFCP) [RFC4582] control channel in
   floor controlled conferences [RFC4583].  BFCP is a protocol used to
   arbitrate access to shared resources (e.g., media streams) in a
   conference.

   SIP/RTSP interaction has been discussed several times in the MMUSIC



Lindquist, et al.       Expires December 11, 2010               [Page 5]

Internet-Draft           Combining SIP and RTSP                June 2010


   working group of the IETF in the past.  The following drafts have
   dealt with the topic over the years:
   [I-D.ietf-whitehead-mmusic-sip-for-streaming-media],
   [I-D.ietf.marjou-mmusic-sdp-rtsp], and
   [I-D.ietf-lindquist-mmusic-sip-rtsp].  The purpose of the most recent
   draft, [I-D.ietf-lindquist-mmusic-sip-rtsp], was to bring the ETSI
   TISPAN solution (and adopted by 3GPP and OIPF), of combining SIP and
   RTSP to the attention of the MMUSIC working group.  The conclusion of
   the discussions triggered by the drafts was that there was no
   consensus that SIP/RTSP interaction is something that should be
   specified in the MMUSIC working group or any other working group of
   the IETF.  Hence, the authors decided to prepare an independent
   submission (i.e., the present document), whose intended status is
   informational, to describe the solution.  There is no intention to
   change the RTSP protocol defined in [RFC2326].  The present document
   serves two purposes.  First, it describes the solution for combining
   SIP and RTSP adopted by ETSI TISPAN, OIPF and 3GPP.  Second, it
   allocates new codepoints (i.e., new SDP attributes and new SDP
   'proto' field value) for the proposed solution.

   This document defines two new ETSI variants of RTSP, which are
   referred to as lightweight RTSP and full RTSP.  Both of the variants
   deal with the overlap between SIP and RTSP.  Lightweight RTSP removes
   the overlap by removing session setup and teardown semantics from
   RTSP.  Full RTSP keeps the overlap by imposing a number of
   requirements on clients.  In addition to removing session setup and
   teardown functionalities, lightweight RTSP does not use DNS to
   resolve RTSP URLs.  Similar to lightweight RTSP, also full RTSP does
   not use DNS to resolve RTSP URLs.  The use of the variants is
   indicated by the new SDP 'proto' field values TCP/ETSI_RTSP (used
   when RTSP runs directly on top of TCP) and TCP/TLS/ETSI_RTSP (used
   when RTSP runs on top of TLS, which in turn runs on top of TCP)
   defined later in this document.  The fact whether lightweight or full
   RTSP is used is determined based on the received SDP, as will be
   described in Section 9.2.1.

   The rest of the document is structured as follows.  Section 3
   describes generic SIP-based video delivery architectures composed of
   a UE, a controller, and a media server.  Section 4 discusses
   architecture and functionality reuse as the main motivation for SIP/
   RTSP interaction.  Section 5 describes the high-level procedures
   required to deliver multimedia streaming content within the
   architectural framework described in Section 3.  Section 6 states
   some requirements for a solution that uses separate protocols to
   establish a session and control the delivery of streaming media.
   Section 7 discusses the design goals of a combined SIP and RTSP
   solution.  Section 8 presents possible solutions that fulfill the
   requirements stated in Section 6.  Section 9 describes the SDP



Lindquist, et al.       Expires December 11, 2010               [Page 6]

Internet-Draft           Combining SIP and RTSP                June 2010


   procedures associated with establishing, modifying, and terminating
   the content control and content delivery channels.  Section 10
   defines the RTSP related procedures.  Section 12 concludes the
   document.


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 RFC 2119 [RFC2119].


   Content Control Channel:  An end-to-end communication channel between
      a user equipment (UE) and media server used for carrying media
      trick play commands such as play, pause, rewind, etc.

   Content Control Protocol:  A protocol that is used to control the
      delivery of media streams.  An example of such a protocol is the
      Real Time Streaming Protocol (RTSP).

   Content Delivery Channel:  And end-to-end communication channel
      between the UE and media server for carrying content such as
      streaming media.

   Content Delivery Protocol:  The content delivery protocol is used for
      delivering content (e.g., media streams).

   Controller:  The systems considered in this document use an
      architecture composed of a controller and a media server.  The
      controller monitors the session with the media server and handles
      user authentication, charging, resource reservation, checking user
      services, and keeping track of streaming (e.g., for keeping
      bookmarks), among other things

   Media Server:  The media server is among other things responsible for
      storing media, delivering media flows to users, and transcoding
      content to different media formats.

   Middlebox:  A middlebox is defined as any intermediary device
      performing functions other than the normal, standard functions of
      an IP router on the datagram path between a source host and
      destination host [RFC3234].  In this document, a middlebox refers
      to an Application Level Gateway (ALG), firewall, or Network
      Address Translator (NAT) device located between a User Equipment
      (UE) and a controller.





Lindquist, et al.       Expires December 11, 2010               [Page 7]

Internet-Draft           Combining SIP and RTSP                June 2010



   Session Management Protocol:  Session management protocol is the
      protocol that is used to establish content delivery streams and
      the control channel for the content control protocol.

   Trick Play:  Trick play refers to using controls such as pause, fast
      forward, rewind, slow-motion, etc.



3.  Generic SIP-based Video Delivery Architectures

   The SIP-based video delivery systems considered in this document use
   an architecture composed of a controller and a media server.  The
   services provided by the controller and the media server are used by
   User Equipment (UE) devices.  We are using such a generalized
   architecture to be able to cover different standardized SIP-based
   architectures for media and IPTV.  The media server is among other
   things responsible for storing media, delivering media flows to UEs,
   and transcoding content to different media formats.  The controller,
   in turn, monitors the session with the media server and handles user
   authentication, charging, resource reservation, checking user
   services, and keeping track of streaming (e.g., for keeping
   bookmarks), among other things.

   The architecture is illustrated in Figure 1.  We refer to the
   protocol that is used between a UE and the controller for
   establishing content delivery stream(s) and a content control channel
   as the session management protocol.  This protocol is responsible for
   carrying information related to client authentication, charging, and
   resource reservation, among other things.  Between the UE and the
   media server, two protocols, a content control protocol and a content
   delivery protocol, are used.  The first is used for the purpose of
   controlling content delivery and the latter for the delivery of
   content.  In this document, we do not define which protocol is used
   on the interface between the controller and the media server.
   Instead, we are using generic commands such as "create session",
   "modify session", and "destroy session" in the signaling flows.

   Although not shown in Figure 1, the UE may be located behind a
   middlebox such as an Application Level Gateway (ALG), firewall, or a
   Network Address Translator (NAT).









Lindquist, et al.       Expires December 11, 2010               [Page 8]

Internet-Draft           Combining SIP and RTSP                June 2010


                               ____+--------------+
                              /    |  Controller  |
                             /     +--------------+
             Session        /             |
             management--> /              |
             protocol     /               |
                         /                |
                +--------+                |
                |   UE   |                | <-- Media server control
                +--------+                |
                  \     \      Content    |
                   \     \ <-- delivery   |
          Content   \     \    protocol   |
          control--> \     \              |
          protocol    \     \______+--------------+
                       \___________| Media Server |
                                   +--------------+

          Figure 1: Generic SIP-based video delivery architecture


4.  Motivation

4.1.  Reuse of Features of Existing Architectures

   The main motivation for using SIP/SDP to establish an RTSP control
   channel is that it makes it possible to reuse existing mechanisms and
   features available in SIP based architectures without the need to
   implement them for RTSP as well.

4.1.1.  Authentication, Authorization, and Accounting Capabilities

   Many architectures have established Authentication, Authorization,
   and Accounting (AAA) mechanisms around SIP.  An interface to AAA
   infrastructure for SIP servers is defined in RFC 4740 [RFC4740].  The
   Diameter SIP application (a Diameter application is not a software
   application, but a protocol based on the Diameter base protocol)
   specified in the RFC can be used to authenticate and authorize the
   usage of SIP-based multimedia services.  SIP has also been extended
   to carry charging information [RFC3455].  If SIP is used to establish
   RTSP-controlled media streams, the existing AAA interface can be used
   to authenticate and authorize the usage of streaming services and to
   do accounting.

4.1.2.  Quality of Service and Resource Reservation Capabilities

   Many systems have also established QoS around SIP.  It is possible to
   negotiate the QoS mechanism to use for a particular media stream



Lindquist, et al.       Expires December 11, 2010               [Page 9]

Internet-Draft           Combining SIP and RTSP                June 2010


   using SIP/SDP, as described in RFC 5432 [RFC5432].  Also resource
   management and SIP have been integrated [RFC3312].  The way QoS
   admission control is integrated with SIP and how a SIP proxy
   interfaces with QoS policy control is described in RFC 3313
   [RFC3313].  RTSP-controlled media streams could greatly benefit from
   the QoS mechanisms established around SIP.

4.1.3.  Security Features

   Certain SIP architectures use SIP Application Level Gateways (ALGs)
   such as Session Border Controllers (SBCs)
   [I-D.ietf-sipping-sbc-funcs] between the access network and a SIP
   core network or between two SIP core networks.  The SIP/RTSP model
   proposed in this document makes it possible to reuse this security
   infrastructure for RTSP-based streaming.

4.1.4.  NAT Traversal

   The content that a user wants to stream may be stored on a remote
   user device located behind a Network Address Translator (NAT).  The
   use of SIP to establish RTSP-controlled content delivery streams
   could make endpoint-hosted streaming easier, even if the remote user
   device is behind a NAT.  If the remote device is running a SIP
   application and the user of the remote device has registered from the
   device to a SIP proxy, the connection that the remote device
   maintains to its SIP proxy can be used by the receiver to send a SIP
   INVITE with SDP payload describing an RTSP control channel and
   content delivery stream(s) to the remote device.  This way the remote
   content can be streamed even if the remote device is located behind a
   NAT without requiring new infrastructure.

4.2.  Advanced Media Applications

   Closer interaction between SIP and RTSP would also enable service
   blending as in the case of an IPTV system wherein information about
   content being viewed can be shared via presence service or the users
   can chat about an ongoing program with instant messaging.  Also other
   "watching apart together" scenarios would become possible.  The
   ability to transfer a Content on Demand (CoD) session from one
   terminal to another is another example.


5.  High-level Procedures

   The purpose of this section is to describe the high level procedures
   required to deliver multimedia streaming content within the
   architectural framework described in Section 3.  The procedures are
   comprised of three main phases - session establishment, session



Lindquist, et al.       Expires December 11, 2010              [Page 10]

Internet-Draft           Combining SIP and RTSP                June 2010


   modification, and session termination.

   The figures in this section include an optional middlebox [RFC3234]
   element, since in some environments, there might be an Application
   Level Gateway (ALG), firewall or Network Address Translator (NAT)
   device located between the UE and the controller.

5.1.  Summary of the Procedures

   This section briefly summarizes the overall operation of the session
   management and content control protocols.

   Establishment of content control and content delivery channels: the
   UE uses the session management protocol with the media server in
   order to establish the relevant content control channel and one or
   more content delivery channels that are to be controlled by the
   content control protocol.  Once the content control session has been
   established, media playback controls are issued directly using the
   content control protocol.  This includes trick play commands.

   Modification of content delivery channel(s): once established, the UE
   or media server may add, remove, or modify any of the content
   delivery channels using the session management protocol.

   Teardown of content control channel and the associated content
   delivery channel(s): teardown of content control and the associated
   content delivery channel(s) may be initiated by the UE or the media
   server using the session management protocol.  This releases all
   resources associated with the content control channel and the content
   delivery channels.

5.2.  Details of the Procedures

5.2.1.  Establishment of Content Control and Content Delivery Channels

   Figure 2 illustrates on a high level the main stages of using the
   session management protocol to establish the content control channel
   and the content delivery streams.  Although not illustrated below,
   session establishment may also be initiated by the controller.












Lindquist, et al.       Expires December 11, 2010              [Page 11]

Internet-Draft           Combining SIP and RTSP                June 2010


     +----+    +-------------+   +------------+         +--------------+
     | UE |    | (Middlebox) |   | Controller |         | Media server |
     +----+    +-------------+   +------------+         +--------------+
        |             |                 |                       |
        | (1) Session establishment,    |                       |
        | session management protocol   |                       |
        |------------>|---------------->|                       |
        |             |                 |                       |
        |             |           /-----------\                 |
        |             |          /(2) Resource \                |
        |             |          \ reservation /                |
        |             |           \-----------/                 |
        |             |                 |                       |
        |             |           /-----------\                 |
        |             |          / (3) Select  \                |
        |             |          \ media server/                |
        |             |           \-----------/                 |
        |             |                 |  (4) Create session   |
        |             |                 |---------------------->|
        |             |                 |       (5) OK          |
        |            (6) OK             |<----------------------|
        |<------------|<----------------|                       |
        |             |                 |                       |
        |             |  (7) Session establishment, content     |
        |             |      control protocol                   |
        |------------>|---------------------------------------->|
        |             |  (8) OK         |                       |
        |<------------|<----------------------------------------|
        |             |           /-----------\                 |
        |             |          /(9) Resource \                |
        |             |          \    commit   /                |
        |             |           \-----------/                 |
        |             |                 |                       |
        |             |  (10) Media control command             |
        |------------>|---------------------------------------->|
        |             |  (11) OK        |                       |
        |<------------|<----------------------------------------|
        |             |                 |                       |
        |             |  (12) Media     |                       |
        |<============|<========================================|
        |             |                 |                       |

                      Figure 2: Session Establishment

   The steps in the signaling flow are as follows:






Lindquist, et al.       Expires December 11, 2010              [Page 12]

Internet-Draft           Combining SIP and RTSP                June 2010


   1.   The UE uses the session management protocol to establish a
        content delivery session with the controller.  The session has
        at least two streams, one for media control and one or more for
        media transmission.
   2.   The controller reserves resources for the control channel and
        media streams.
   3.   The controller selects an appropriate media server.
   4.   The controller orders the media server to create a content
        delivery session.
   5.   The media server returns a success response to the controller.
   6.   The controller returns a success response to the UE.
   7.   The resource reservation is committed.
   8.   The UE sends a content control protocol request to the media
        server to trigger content control protocol session
        establishment.  It should be noted that this step is only needed
        if the content control protocol contains session setup
        semantics.
   9.   The media server returns a success response to the UE.
   10.  The UE sends a content control command to the media server.
   11.  The media server sends a success response to the content control
        protocol request back to the UE.
   12.  The media stream is sent to the client.

5.2.2.  Modification of Content Delivery Channels

   This section illustrates how a content delivery session is modified.
   Session modification is necessary for instance when the user wants to
   add media streams to or remove media streams from an ongoing content
   delivery session.  Although not illustrated below, session
   modification may also be initiated by the controller.

   An example of session modification is shown in Figure 3.



















Lindquist, et al.       Expires December 11, 2010              [Page 13]

Internet-Draft           Combining SIP and RTSP                June 2010


     +----+    +-------------+   +------------+         +--------------+
     | UE |    | (Middlebox) |   | Controller |         | Media server |
     +----+    +-------------+   +------------+         +--------------+
        |             |                 |                       |
        | (1) Session modification      |                       |
        | request, session management   |                       |
        | protocol    |                 |                       |
        |------------>|---------------->|                       |
        |             |                 |                       |
        |             |           /-----------\                 |
        |             |          /(2) Resource \                |
        |             |          \ reservation /                |
        |             |           \-----------/                 |
        |             |                 |                       |
        |             |           /-----------\                 |
        |             |          / (3) Select  \                |
        |             |          \ media server/                |
        |             |           \-----------/                 |
        |             |                 |  (4) Modify session   |
        |             |                 |---------------------->|
        |             |                 |        (5) OK         |
        |            (6) OK             |<----------------------|
        |<------------|<----------------|                       |
        |             |           /-----------\                 |
        |             |          /(7) Resource \                |
        |             |          \    commit   /                |
        |             |           \-----------/                 |
        |             |                 |                       |
        |    (8) Content control protocol trick play command    |
        |------------>|---------------------------------------->|
        |             |        (9) OK   |                       |
        |<------------|<----------------------------------------|
        |             |                 |                       |

                      Figure 3: Session Modification

   The steps in Figure 3 are as follows:

   1.  The UE performs session modification by sending a session
       management protocol session modification request to the
       controller, as shown in step (1) of Figure 3.  The UE initiates
       session modification in order to add media streams to or remove
       media streams from the ongoing content delivery session.
   2.  The controller modifies the resources reserved for the content
       delivery session according to the session modification request.
   3.  The controller selects a media server.





Lindquist, et al.       Expires December 11, 2010              [Page 14]

Internet-Draft           Combining SIP and RTSP                June 2010


   4.  The controller orders the media server to modify the session.
   5.  The media server returns a success response to the controller.
   6.  The controller returns a session management protocol success
       response to the UE.
   7.  The controller commits the reservation.
   8.  The UE starts playback by issuing a content control protocol
       request.
   9.  The media server returns a content control protocol success
       response.

5.2.3.  Teardown of Content Control Channel and the Associated Content
        Delivery Channel(s)

   Figure 4 shows on a high level how media streams and the session are
   terminated.  Although not illustrated below, session termination may
   also be initiated by the controller.

     +----+    +-------------+   +------------+         +--------------+
     | UE |    | (Middlebox) |   | Controller |         | Media server |
     +----+    +-------------+   +------------+         +--------------+
        |             |                 |                       |
        |             |          Media  |                       |
        |<============|<========================================|
        |             |      (1) Media teardown                 |
        |------------>|---------------------------------------->|
        |             |                 |                       |
        |             |      (2) Media stream(s) terminated     |
        |             |                 |                       |
        |             |      (3) OK     |                       |
        |<------------|<----------------------------------------|
        |             |                 |                       |
        |   (4) Session termination     |                       |
        |------------>|---------------->|                       |
        |             |           /-----------\                 |
        |             |          /(5) Resource \                |
        |             |          \   release   /                |
        |             |           \-----------/                 |
        |             |                 | (6) Destroy session   |
        |             |                 |---------------------->|
        |             |                 |         (7) OK        |
        |            (8) OK             |<----------------------|
        |<------------|<----------------|                       |
        |             |                 |                       |

                       Figure 4: Session Termination

   The steps in the signaling flow are as follows:




Lindquist, et al.       Expires December 11, 2010              [Page 15]

Internet-Draft           Combining SIP and RTSP                June 2010


   1.  The UE uses the content control protocol to tear down the media
       stream(s).  It should be noted that this step is only needed if
       the content control protocol contains session teardown semantics.
   2.  The media server stops sending the media stream(s).
   3.  The media server returns a content control protocol success
       response to the UE.
   4.  The UE uses the session management protocol to terminate the
       session.
   5.  The controller releases the resources that have been reserved for
       the media stream(s) and the content control channel.
   6.  The controller orders the media server to destroy the session.
   7.  The media server returns a success response to the controller.
   8.  The controller returns a session management protocol success
       response to the UE.


6.  Requirements

   Based on the signaling flows shown in Section 5, this section
   identifies the main requirements for a solution that uses a session
   management protocol to establish a control channel for a content
   control protocol and one or more content delivery channels (i.e.,
   media streams) for content delivery.

6.1.  Content Control Protocol Accessing Resources Established by
      Session Management Protocol

   REQ-1  The content control protocol needs to be able to access and
      use resources that have been configured and established by the
      session management protocol.

   Different protocols are used for setting up the media streams and for
   controlling media stream delivery.  Thus, there needs to be a way for
   the content control protocol to refer to the media streams that were
   set up using the session management protocol.

6.2.  Use of Transport Addresses in Content Control and Session
      Management Protocols

   REQ-2  The session management protocol is responsible for negotiating
      media transport related information.

   The content control protocol and the content delivery protocol should
   use the transport addresses that were negotiated for the media
   streams and content control channel by the session management
   protocol.  If these addresses need to be changed, the change must be
   negotiated using the session management protocol.




Lindquist, et al.       Expires December 11, 2010              [Page 16]

Internet-Draft           Combining SIP and RTSP                June 2010


   Since different protocols are used for session establishment and
   content control, both protocol stacks need to have the same view on
   the local and remote transport addresses used for the media streams
   and the control channel.  Therefore, content control protocol
   messages should be sent to the transport addresses negotiated by the
   session management protocol and media should be sent to the transport
   addresses negotiated during session establishment.

   Additional problems may arise if the content control protocol is used
   to redirect the client to connect to another media server.  The main
   issue with redirection is middleboxes.  A middlebox inspects the
   information carried in the session management protocol so that it can
   open pinholes for the content delivery channels and for the content
   control channel.  The middlebox may not inspect the content control
   protocol messages.  Thus, if the media server uses the content
   control protocol to redirect the UE to connect to another media
   server, the middlebox state may not get updated.  As a result, the
   media streams sent by the new media server might never reach the UE
   (or the UE may not even be able to contact the new media server).

6.3.  Session Termination

   REQ-3  The session management protocol and the content control
      protocol need to perform session termination in a coordinated way.

   This kind of coordination is required to make sure that the session
   management protocol will not release resources in the network before
   the content control protocol has successfully terminated the media
   streams.  Therefore, media teardown procedures should be carried out
   before the session management protocol is used to terminate the
   session.  Alternatively, if the content control protocol is not used
   to terminate the media streams (which is true when the content
   control protocol does not define session teardown semantics), but
   only the session management protocol is, the above-mentioned
   coordination is not necessary.


7.  Design Goals

   In the remainder of the document, we will assume that the session
   management protocol is SIP and that the content control protocol is
   RTSP.  This section provides an overview of the design goals of the
   combined SIP and RTSP solution.  These design goals are listed below:

   o  The session management protocol should be able to initiate,
      modify, and terminate content control and content delivery
      channels from the client side and server side using the SDP offer/
      answer mechanism.



Lindquist, et al.       Expires December 11, 2010              [Page 17]

Internet-Draft           Combining SIP and RTSP                June 2010


   o  The content control protocol must be negotiated using the SDP
      offer/answer mechanism.
   o  The content control protocol must allow for trick-play commands
      such as PLAY, REWIND, FORWARD, and PAUSE commands.
   o  The content control protocol must allow for asynchronous media
      event notifications (e.g., end-of-stream).
   o  The content control protocol must work over TCP.


8.  Combining SIP/SDP and RTSP

   In order to better understand the issues with the reuse of existing
   architectures and support of a SIP-based video delivery architecture,
   this section provides an overview of existing systems specified by
   standardization bodies such as ETSI TISPAN and 3GPP.  We will
   describe the interaction between SIP/SDP and RTSP protocols for these
   systems.

   Below, we present two approaches specified by ETSI TISPAN that
   fulfill the requirements stated in Section 6 and meet the design
   goals listed in Section 7.  In both of the approaches, SIP/SDP is
   used to establish an RTSP control stream and one or more content
   delivery streams.  In the first approach, the UE uses RTSP without
   session setup and teardown semantics, whereas in the second approach,
   the UE uses full RTSP.

8.1.  Method 1: Lightweight RTSP without Session Setup Semantics

   In the signaling flows shown in the figures below, a lightweight
   version of RTSP without session setup semantics is used to control
   media streams that have been set up using SIP/SDP.  The benefits of
   using a lightweight version of RTSP over using the full RTSP include
   that since lightweight RTSP does not specify session setup and
   teardown semantics, there is no overlap between SIP and RTSP
   signaling.  Further, less signaling is required and it is easier to
   correlate the two protocols.

8.1.1.  Session Establishment Initiated by UE

   The signaling flow in Figure 5 illustrates how proposed IPTV and
   streaming systems (e.g., ETSI TISPAN) use SIP to set up an RTSP
   content control channel and RTP content delivery channel(s) in the
   context of a Content on Demand (CoD) service.  The figure is a
   generalized version of the signaling flow specified in [ETSI TS 183
   063].  In the figure, a lightweight version of RTSP without session
   setup and teardown semantics is used.





Lindquist, et al.       Expires December 11, 2010              [Page 18]

Internet-Draft           Combining SIP and RTSP                June 2010


     +----+    +-------------+   +------------+         +--------------+
     | UE |    | (Middlebox) |   | Controller |         | Media server |
     +----+    +-------------+   +------------+         +--------------+
        |             |                 |                       |
        |          (1) INVITE           |                       |
        |------------>|---------------->|                       |
        |             |                 |                       |
        |             |           /-----------\                 |
        |             |          /(2) Resource \                |
        |             |          \ reservation /                |
        |             |           \-----------/                 |
        |             |                 |                       |
        |             |           /-----------\                 |
        |             |          / (3) Select  \                |
        |             |          \ media server/                |
        |             |           \-----------/                 |
        |             |                 |  (4) Create session   |
        |             |                 |---------------------->|
        |             |                 |         (5) OK        |
        |          (6) 200 OK (INVITE)  |<----------------------|
        |<------------|<----------------|                       |
        |             |           /-----------\                 |
        |             |          /(7) Resource \                |
        |             |          \    commit   /                |
        |             |           \-----------/                 |
        |             |                 |                       |
        |          (8) ACK              |                       |
        |------------>|---------------->|                       |
        |             |  (9) PLAY       |                       |
        |------------>|---------------------------------------->|
        |             |  (10) 200 OK (PLAY)                     |
        |<------------|<----------------------------------------|
        |             |  (11) RTP       |                       |
        |<============|<========================================|
        |             |                 |                       |

              Figure 5: RTSP without Session Setup Semantics

   The steps in the signaling flow are as follows:

   1.   The UE sends a SIP INVITE request to the controller to set up at
        least two channels, one for RTSP control and one or more for
        media transmission.  The SDP offer included in the INVITE
        contains a media description for the RTSP content control
        channel and one or more media descriptions for the content
        delivery channels.  It is assumed that the client already knows
        what resources (i.e., media streams) are associated with the
        content it is requesting to view.  As an example, the UE may



Lindquist, et al.       Expires December 11, 2010              [Page 19]

Internet-Draft           Combining SIP and RTSP                June 2010


        obtain the relevant SDP parameters such as media type, transport
        etc. required for establishing the content delivery channels a
        priori via HTTP from a content guide server or an Electronic
        Programme Guide (EPG) server.  The contents of the SDP offer are
        defined in Section 9.1.1.
   2.   Upon receiving the SIP INVITE request, the controller reserves
        resources for the RTSP and RTP streams.
   3.   The controller selects an appropriate media server.
   4.   Next, the controller orders the media server to create a
        streaming session.
   5.   The media server returns a success response to the controller.
   6.   The controller returns a SIP 200 OK response to the UE.  Among
        other things, the SDP answer included in the response contains
        an RTSP session ID parameter.  The SDP answer also contains a
        media description for the RTSP content control channel and one
        or more media descriptions for the content delivery channels.
        The exact contents of the SDP answer are described in
        Section 9.2.1.
   7.   The resource reservation is committed.
   8.   The UE returns a SIP ACK to the controller.
   9.   The UE sends an RTSP PLAY request to the media server.  The UE
        knows the server IP address and port for RTSP since the
        controller returned them in the SIP INVITE 200 OK response.  The
        session ID parameter the server returned in the SDP answer is
        included in the Session header of the request.  The contents of
        the PLAY requests are described in detail in Section 10.2.2.
   10.  The media server sends a 200 OK response to RTSP PLAY request
        back to the UE.
   11.  The RTP stream is sent to the client IP address indicated in the
        SDP offer.

8.1.2.  Session Establishment Initiated by Controller

   Figure 6 shows the case when the session establishment is initiated
   by the controller instead of the UE.
















Lindquist, et al.       Expires December 11, 2010              [Page 20]

Internet-Draft           Combining SIP and RTSP                June 2010


     +----+    +-------------+   +------------+         +--------------+
     | UE |    | (Middlebox) |   | Controller |         | Media server |
     +----+    +-------------+   +------------+         +--------------+
        |             |                 |                       |
        |          (1) INVITE           |                       |
        |<------------|<----------------|                       |
        |             |                 |                       |
        |          (2) 200 OK (INVITE)  |                       |
        |------------>|---------------->|                       |
        |             |           /-----------\                 |
        |             |          /(3) Resource \                |
        |             |          \ reservation /                |
        |             |           \-----------/                 |
        |             |                 |                       |
        |             |           /-----------\                 |
        |             |          / (4) Select  \                |
        |             |          \ media server/                |
        |             |           \-----------/                 |
        |             |                 |  (5) Create session   |
        |             |                 |---------------------->|
        |             |                 |       (6) OK          |
        |             |                 |<----------------------|
        |             |           /-----------\                 |
        |             |          /(7) Resource \                |
        |             |          \    commit   /                |
        |             |           \-----------/                 |
        |             |                 |                       |
        |          (8) ACK              |                       |
        |<------------|<----------------|                       |
        |             |                 |                       |
       /---------------------------------------------------------\
      (              Method 1: Steps 9-11 of Figure 5             )
       \---------------------------------------------------------/
        |             |                 |                       |
        |             |                 |                       |
       /---------------------------------------------------------\
      (              Method 2: Steps 9-13 of Figure 8             )
       \---------------------------------------------------------/
        |             |                 |                       |
        |             |                 |                       |

          Figure 6: RTSP Control Stream Established Using SIP/SDP

   The steps in the signaling flow are as follows:

   1.  The controller sends an initial SIP INVITE request to the UE.
       The INVITE request does not include an SDP body.




Lindquist, et al.       Expires December 11, 2010              [Page 21]

Internet-Draft           Combining SIP and RTSP                June 2010


   2.  The UE accepts the INVITE and sends a SIP 200 OK final response
       to the controller.  The 200 OK carries an SDP offer whose
       contents are described in Section 9.1.1
   3.  The controller reserves resources for the RTSP and RTP streams.
   4.  The controller selects an appropriate media server.
   5.  The controller orders the media server to create a streaming
       session.
   6.  The media server returns a success response to the controller.
   7.  The resource reservation is committed.
   8.  The controller returns a SIP ACK request to the UE.  The ACK
       contains an SDP answer the contents of which are described in
       Section 9.2.1.

   Having received the ACK, the UE can use one of two alternative
   methods to start receiving the content stream(s).  If Method 1
   (lightweight RTSP) is used, steps 9-11 of Figure 5 are executed.  If
   Method 2 (full RTSP) is used, the UE executes steps 9-13 of Figure 8.

8.1.3.  Session Termination

   Figure 7 illustrates how a session is terminated when a lightweight
   RTSP without session setup and teardown semantics is used.





























Lindquist, et al.       Expires December 11, 2010              [Page 22]

Internet-Draft           Combining SIP and RTSP                June 2010


     +----+    +-------------+   +------------+         +--------------+
     | UE |    | (Middlebox) |   | Controller |         | Media server |
     +----+    +-------------+   +------------+         +--------------+
        |             |                 |                       |
        |             |      RTP stream |                       |
        |<============|<========================================|
        |             |                 |                       |
        |            (1) TCP connection for RTSP closed         |
        |             |                 |                       |
        |            (2) BYE            |                       |
        |------------>|---------------->|                       |
        |             |                 |                       |
        |             |                 | (3) Destroy session   |
        |             |                 |---------------------->|
        |             |                 |                       |
        |             |  (4) RTP stream terminated              |
        |             |                 |                       |
        |             |                 |         (5) OK        |
        |             |                 |<----------------------|
        |             |                 |                       |
        |             |           /-----------\                 |
        |             |          /(6) Resource \                |
        |             |          \   release   /                |
        |             |           \-----------/                 |
        |       (7) 200 OK (BYE)        |                       |
        |<------------|<----------------|                       |
        |             |                 |                       |

                       Figure 7: Session Termination

   The steps in the signaling flow of Figure 7 are described below:

   1.  The UE closes the TCP connection that is used for RTSP.
   2.  The UE sends a SIP BYE request to the controller to terminate the
       session and to tear down the media stream(s).
   3.  The controller orders the media server to destroy the session.
   4.  The media server stops sending the RTP content stream(s).
   5.  The media server returns a success response to the controller.
   6.  The controller releases the resources that have been reserved for
       the RTP and RTSP streams.
   7.  The controller returns a SIP 200 OK (BYE) response to the UE.

8.1.4.  Discussion on the Requirements

   Below, it is described how this method satisfies the requirements
   stated in Section 6.





Lindquist, et al.       Expires December 11, 2010              [Page 23]

Internet-Draft           Combining SIP and RTSP                June 2010


8.1.4.1.  Requirement 1 - Content Control Protocol Accessing Resources
          Established by Session Management Protocol

   The RTSP SETUP request is not used in this method.  To correlate SIP
   and RTSP, a session ID parameter MUST be returned by the controller
   in the SDP answer carried in the SIP 200 OK response to the SIP
   INVITE request.  This session ID is used in the Session header of
   RTSP messages such as the PLAY request.

8.1.4.2.  Requirement 2 - Use of Transport Addresses in Content Control
          and Session Management Protocols

8.1.4.2.1.  DNS Lookup for RTSP URL

   The UE should not perform a DNS lookup for the RTSP URL that the
   controller returns in the SDP answer.  Otherwise there is a risk that
   a different destination transport address than was returned in the
   SDP answer will be used for RTSP messages sent to the media server.
   This is problematic if the UE is located behind a middlebox: the
   middlebox may drop the packets sent to the new server address.

   To solve this issue, the UE MUST use the server IP address and port
   returned in the SDP answer (in "c=" and "m=" lines of the RTSP
   control channel) as the destination address of RTSP messages.

   If there is a need to change the server IP address, a session
   modification needs to be performed.

   Note that to avoid the issue with DNS lookups, deployments can choose
   to deliver IP addresses back to the UE within RTSP URLs.

8.1.4.2.2.  Redirection

   The media server is selected during SIP session establishment prior
   to sending RTSP PLAY and there is no RTSP SETUP request, so no
   redirection is expected.

8.1.4.2.3.  Correlating Transport Address in SDP Offer with Transport
            Header in SETUP

   Since RTSP SETUP is not used, there is no correlation issue.

8.1.4.3.  Requirement 3 - Session Termination

   Since RTSP TEARDOWN is not used, there is no overlap between SIP BYE
   and RTSP TEARDOWN requests.  Resources are released when the SIP BYE
   request is received.




Lindquist, et al.       Expires December 11, 2010              [Page 24]

Internet-Draft           Combining SIP and RTSP                June 2010


8.2.  Method 2: Full RTSP

8.2.1.  Session Establishment Initiated by UE

   Figure 8 shows the way a session is established when full RTSP is
   used.

     +----+    +-------------+   +------------+         +--------------+
     | UE |    | (Middlebox) |   | Controller |         | Media server |
     +----+    +-------------+   +------------+         +--------------+
        |             |                 |                       |
        |          (1) INVITE           |                       |
        |------------>|---------------->|                       |
        |             |                 |                       |
        |             |           /-----------\                 |
        |             |          /(2) Resource \                |
        |             |          \ reservation /                |
        |             |           \-----------/                 |
        |             |                 |                       |
        |             |           /-----------\                 |
        |             |          / (3) Select  \                |
        |             |          \ media server/                |
        |             |           \-----------/                 |
        |             |                 |  (4) Create session   |
        |             |                 |---------------------->|
        |             |                 |       (5) OK          |
        |          (6) 200 OK (INVITE)  |<----------------------|
        |<------------|<----------------|                       |
        |             |           /-----------\                 |
        |             |          /(7) Resource \                |
        |             |          \    commit   /                |
        |             |           \-----------/                 |
        |             |                 |                       |
        |          (8) ACK              |                       |
        |------------>|---------------->|                       |
        |             |  (9) SETUP      |                       |
        |------------>|---------------------------------------->|
        |             |  (10) 200 OK (SETUP)                    |
        |<------------|<----------------------------------------|
        |             |  (11) PLAY      |                       |
        |------------>|---------------------------------------->|
        |             |  (12) 200 OK (PLAY)                     |
        |<------------|<----------------------------------------|
        |             |  (13) RTP       |                       |
        |<============|<========================================|
        |             |                 |                       |

          Figure 8: RTSP Control Stream Established Using SIP/SDP



Lindquist, et al.       Expires December 11, 2010              [Page 25]

Internet-Draft           Combining SIP and RTSP                June 2010


   The steps in the signaling flow are as follows:

   1.   The UE sends a SIP INVITE request to the controller to set up at
        least two streams, one for RTSP control and one or more for
        media transmission.  If there is a firewall or SIP ALG between
        the UE and the controller, it forwards the INVITE and inspects
        the SDP offer included in the INVITE in order to be able to open
        pinholes for the streams.  It is assumed that the client already
        knows what resources (i.e., media streams) are associated with
        the content it is requesting to view.  The contents of the SDP
        offer are described in Section 9.1.1.
   2.   Upon receiving the SIP INVITE request, the controller reserves
        resources for the RTSP and RTP streams.
   3.   Next, the controller selects an appropriate media server.
   4.   The controller orders the media server to create a streaming
        session.
   5.   The media server returns a success response to the controller.
   6.   The controller sends a SIP 200 OK (INVITE) final response to the
        UE.  The SDP answer included in the response contains among
        other things an RTSP URL.  The exact contents of the SDP answer
        are described in Section 9.2.1.
   7.   The resource reservation is committed.
   8.   The UE returns an ACK to the controller to acknowledge the
        reception of the SIP 200 OK (INVITE) final response.
   9.   The UE sends an RTSP SETUP to the media server to trigger RTSP
        session initiation.  The UE learned the server IP address and
        port for RTSP since the controller returned them in the SDP
        answer included in the SIP INVITE 200 OK response.  The RTSP URL
        of the SETUP request is set to the URL returned in the SDP
        answer as described in Section 10.2.1.
   10.  An RTSP 200 OK response for the RTSP SETUP request is sent back
        to the UE.  The RTSP network parameters exchanged in the SETUP
        request and response are the same as the RTSP network parameters
        agreed during the SDP offer/answer exchange.  The UE should
        store the Session header included in the response for issuing
        the RTSP PLAY request.
   11.  The UE sends an RTSP PLAY request to the media server.  The
        contents of the PLAY requests are described in Section 10.2.2.
   12.  The media server sends an RTSP 200 OK for RTSP PLAY back to the
        UE.
   13.  The RTP stream is sent to the client IP address indicated by the
        SDP offer and RTSP SETUP.

8.2.2.  Session Establishment Initiated by Controller

   If the session establishment is initiated by the controller, the
   signaling flow is the same as in Figure 6 with the exception that
   after receiving the ACK, the UE proceeds by executing steps 9-13 of



Lindquist, et al.       Expires December 11, 2010              [Page 26]

Internet-Draft           Combining SIP and RTSP                June 2010


   Figure 8.

8.2.3.  Session Termination

   The figure below illustrates how a streaming session is terminated in
   [ETSI TS 183 063] when full RTSP is being used.

     +----+    +-------------+   +------------+         +--------------+
     | UE |    | (Middlebox) |   | Controller |         | Media server |
     +----+    +-------------+   +------------+         +--------------+
        |             |                 |                       |
        |             |      RTP stream |                       |
        |<============|<========================================|
        |             |      (1) TEARDOWN                       |
        |------------>|---------------------------------------->|
        |             |                 |                       |
        |             |      (2) RTP stream terminated          |
        |             |                 |                       |
        |             |      (3) 200 OK (TEARDOWN)              |
        |<------------|<----------------------------------------|
        |             |                 |                       |
        |             | (4) TCP connection for RTSP closed      |
        |             |                 |                       |
        |            (5) BYE            |                       |
        |------------>|---------------->|                       |
        |             |           /-----------\                 |
        |             |          /(6) Resource \                |
        |             |          \   release   /                |
        |             |           \-----------/                 |
        |             |                 | (7) Destroy session   |
        |             |                 |---------------------->|
        |             |                 |         (8) OK        |
        |          (9) 200 OK (BYE)     |<----------------------|
        |<------------|<----------------|                       |
        |             |                 |                       |

                       Figure 9: Session Termination

   The steps in the signaling flow are as follows:

   1.  The UE sends an RTSP TEARDOWN request to the media server.
   2.  The media server stops sending the RTP content stream(s).
   3.  The media server returns a 200 OK (TEARDOWN) response to the UE.
   4.  The UE disconnects the TCP connection that was used for RTSP
       signaling.
   5.  The UE sends a SIP BYE request to the controller.





Lindquist, et al.       Expires December 11, 2010              [Page 27]

Internet-Draft           Combining SIP and RTSP                June 2010


   6.  The controller releases the resources that have been reserved for
       the RTP and RTSP streams.
   7.  The controller orders the media server to destroy the session.
   8.  The media server returns a success response to the controller.
   9.  The controller returns a SIP 200 OK (BYE) response to the UE.

8.2.4.  Discussion on the Requirements

   In this section, we discuss how this method satisfies the
   requirements stated in Section 6.

8.2.4.1.  Requirement 1 - Content Control Protocol Accessing Resources
          Established by Session Management Protocol

   Correlating the SIP INVITE transaction and the RTSP SETUP request may
   be problematic since there is no RTSP session identifier returned in
   the INVITE response.

   To solve this problem, the RTSP URL returned in the SDP answer MUST
   convey correlation information as specified in [ETSI TS 183 063].

8.2.4.2.  Requirement 2 - Use of Transport Addresses in Content Control
          and Session Management Protocols

8.2.4.2.1.  DNS lookup for RTSP URL

   The same discussion applies as for Method 1 (see Section 8.1.4.2.1).

8.2.4.2.2.  Redirection

   The media server should not redirect the RTSP SETUP request.  The
   redirection has to be already known prior to the RTSP SETUP since the
   SDP answer for the SIP INVITE response needs to contain the final
   destination of the media server.

   If there is a SIP ALG between the UE and the controller, the SIP ALG
   opens pinholes for the media delivery stream(s) based on the
   information conveyed in the SDP offer/answer exchange.  If an RTSP
   REDIRECT request or Redirection status code is later issued on the
   RTSP control channel, the SIP ALG may never learn the address of the
   new server.  This is because the SIP ALG may not inspect RTSP
   messages.  The result is that new pinholes will not be opened for the
   RTSP control channel and the media delivery stream(s) coming from the
   new server.

   Because of the above-mentioned problems, redirection MUST NOT be
   used.




Lindquist, et al.       Expires December 11, 2010              [Page 28]

Internet-Draft           Combining SIP and RTSP                June 2010


   Note that if the service provider provides both the service and the
   content (i.e., the media server), the service provider is in full
   control of the media server's behavior.  In that case, there would be
   no redirection.  However, if the service provider and content
   provider are separate, then redirection might be an issue.

8.2.4.2.3.  Correlating Transport Address in SDP Offer with Transport
            Header in SETUP

   The Transport header of the RTSP SETUP request MUST contain the same
   information as the SDP offer in the SIP INVITE request.

8.2.4.3.  Requirement 3 - Session Termination

   Teardown of the streaming session will not always be possible
   according to the procedures defined in [RFC2326].  This is because
   the UE may not be able to send an RTSP TEARDOWN request or receive a
   response to the TEARDOWN request if the resources in the network for
   the RTSP session have been released when receiving s SIP BYE request.

   To address this issue, SIP session termination and RTSP session
   termination MUST be carried out in a coordinated way.  When using
   both SIP BYE and RTSP TEARDOWN, the media teardown procedures using
   RTSP TEARDOWN MUST be executed before the SIP BYE request is sent.

   An additional issue is that there may be more nodes than the two end-
   points that normally exist in typical RTSP scenarios that can
   initiate session termination.  An example of such a node is SIP Back-
   to-Back User Agent (B2BUA).


9.  Establishment of Content Control and Content Delivery Channels

   This section describes the procedures to be performed for
   establishing an RTSP content control channel and the associated
   content delivery channel(s) using the SDP offer/answer model.

9.1.  Procedures at the SDP Offerer

9.1.1.  UE as the SDP Offerer

   The UE, as the SDP offerer, MUST follow the procedures in this
   section to establish the content control channel and one or more
   content delivery channels.  The SDP offer is per SDP specification
   [RFC4145].  A media line for the RTSP content control channel is
   included with the following values:





Lindquist, et al.       Expires December 11, 2010              [Page 29]

Internet-Draft           Combining SIP and RTSP                June 2010


   o  The media field MUST have a value of "application".
   o  The port field MUST indicate a TCP port.  The port MUST be set to
      a value of 9, which is the discard port.
   o  The transport field MUST be set to contain either the value "TCP/
      ETSI_RTSP" or "TCP/TLS/ETSI_RTSP".  The former is used when RTSP
      runs directly on top of TCP and the latter when RTSP runs on top
      of TLS, which in turn runs on top of TCP.
   o  The fmt (format) list is ignored for ETSI_RTSP.  It MUST contain a
      single "*" character.

   An "a=setup" attribute MUST be present and set to "active".

   An "a=connection" attribute MUST be present and set to "new".

   The SDP offer MUST additionally include at least one content delivery
   channel description and specify the related m-line(s).

   An "a=recvonly" attribute MUST be present.

   A "b=" line indicating the bandwidth necessary to handle this content
   delivery channel MAY be included.

   If a broadcast session is being switched to a unicast session, the
   offer MUST include an "etsi_rtsp-offset" attribute to specify the
   current playback position.  The UE will resume from this position
   when issuing an RTSP PLAY request.

   The offer MAY optionally include "etsi_rtsp-version" attributes to
   specify the RTSP versions that the UE supports.  If no "etsi_rtsp-
   version" attributes are included, the receiver of the offer MUST
   interpret this to mean that the offerer supports only RTSP version
   1.0.  At the time of writing the document, the ETSI TISPAN solution
   for combining SIP and RTSP used RTSP 1.0.  Since the intention of
   this document is to describe the ETSI TISPAN solution, the document
   specifies only the use of RTSP 1.0.

   The receiver of the SDP offer MUST interpret the offer so that all
   described content delivery channels are under the control of the
   content control protocol.

   When receiving any SDP answer, the UE MUST examine the media
   parameters in the received SDP.  The UE MUST use the received SDP
   parameters for content control procedures as described in
   Section 10.2.







Lindquist, et al.       Expires December 11, 2010              [Page 30]

Internet-Draft           Combining SIP and RTSP                June 2010


9.2.  Procedures at SDP Answerer

9.2.1.  Controller as SDP Answerer

   The controller, as the SDP answerer, MUST follow the procedures in
   this section to establish the content control channel and at least
   one content delivery channel.  The SDP answer is per the SDP
   specification [RFC4145].  The media line for RTSP content control
   channel is included with the following values:

   o  The media field MUST have a value of "application".
   o  The port field MUST be a TCP port and its value MUST be set to the
      port allocated at the media server.
   o  The transport field MUST be set to contain either the value "TCP/
      ETSI_RTSP" or "TCP/TLS/ETSI_RTSP".
   o  The fmt list MUST contain a single "*" character.

   An "a=setup" attribute MUST be present and set to "passive".

   An "a=connection" attribute MUST be present and set to "new".

   The answer MUST include one or more attribute lines representing RTSP
   content control specific attributes.  These attributes are set as
   follows:

   o  An "etsi_rtsp-uri" attribute MUST be present and set to the RTSP
      URL to be used in the RTSP content control requests.  The URI can
      be in form of an absolute or a relative URI.  If an absolute URI
      is specified, it is used by the UE as-is in subsequent RTSP
      requests.  If a relative URI is specified in the form of a media
      path, the RTSP absolute URL can be constructed by the UE using the
      IP address (from c-line) and port (from m-line) as the base
      followed by an etsi_rtsp-uri value for the media path.
   o  If the controller supports Method 1 (lightweight RTSP), the
      controller MUST include an "etsi_rtsp-session" attribute
      representing the session ID of the RTSP session.  If the
      controller uses Method 2 (full RTSP), such attribute MUST NOT be
      included.  The UE will determine whether to use Method 1 or Method
      2 based on the presence or absence of the "etsi_rtsp-session"
      attribute.  If the attribute is received in the SDP answer, the UE
      MUST use Method 1.  Otherwise the UE MUST use Method 2.  The value
      of the "etsi_rtsp-session" attribute has the following format:
      a=etsi_rtsp-session:<session ID> [<timeout>].  The timeout
      parameter is optional.  It specifies a numeric timeout interval in
      seconds.  The UE uses the value of the parameter for sending RTSP
      keepalives (e.g., GET_PARAMETER requests) to the server.  If no
      timeout parameter is included, the UE MUST use a default value of
      60 seconds



Lindquist, et al.       Expires December 11, 2010              [Page 31]

Internet-Draft           Combining SIP and RTSP                June 2010


   o  Optionally, the answer MAY include an "etsi_rtsp-offset" attribute
      to specify the current playback position.  The UE will resume from
      this position when issuing an RTSP PLAY request.
   o  The answer MAY optionally include "etsi_rtsp-version" attributes
      to specify the RTSP versions that the controller supports.  If no
      "etsi_rtsp-version" attributes are included, the receiver of the
      answer MUST interpret this to mean that the answerer supports only
      RTSP version 1.0.  After the offer/answer exchange has finished,
      the UE and the controller MUST use the highest RTSP version
      supported by both parties.  If, during the streaming session, the
      UE attempts to use an RTSP version that is not supported by the
      controller (or vice-versa) the RTSP request MUST be rejected with
      the error code '505 RTSP Version Not Supported'.

9.3.  Modification of Content Delivery Channel(s)

   Modification of the content delivery channels including adding,
   removing or modifying media parameters associated with the content
   delivery channels may be initiated by the UE or the Controller.

   The UE and the Controller MUST not modify the RTSP control channel
   m-line description in the SDP if the content delivery streams
   controlled by RTSP are not removed (port not set to zero in m-lines).


10.  Content Control Protocol

   This section describes procedures that a UE can use for controlling
   the content delivery channels that have been established using either
   full RTSP or a lightweight version of RTSP.

10.1.  Lightweight RTSP

   When using Method 1 (lightweight RTSP), all RTSP requests MUST use
   the same session ID as specified in the SDP etsi_rtsp-session
   attribute during content control session establishment.

   When the lightweight RTSP is used, the following methods MUST be
   supported for media playback control and media event notifications:
   o  RTSP PLAY (UE -> media server)
   o  RTSP PAUSE (UE -> media server)
   o  RTSP GET_PARAMETER (UE -> media server)
   o  RTSP SET_PARAMETER (UE -> media server)
   o  RTSP ANNOUNCE (media server -> UE)
   o  RTSP OPTIONS (UE -> media server)






Lindquist, et al.       Expires December 11, 2010              [Page 32]

Internet-Draft           Combining SIP and RTSP                June 2010


10.2.  Procedures at the UE

10.2.1.  Media Setup Procedure

   The UE sends an RTSP SETUP request only when Method 2 (full RTSP) is
   being used.  If Method 1 (lightweight RTSP) is being used, the UE
   MUST NOT send an RTSP SETUP request.  When sending an RTSP SETUP
   request, the UE MUST populate the header fields as follows:

   o  The RTSP URL MUST be set to the media RTSP URL received in the SDP
      answer from the controller.  If the RTSP URL contains a domain
      address, the UE MUST NOT perform a DNS lookup.  Instead, the
      target transport address (by transport address, we refer to IP
      address and transport protocol port number) of the RTSP SETUP
      request MUST be set to the IP address obtained from the connection
      line ("c=") in the SDP answer and the port specified in the media
      line ("m=") of the RTSP control stream.

   If full RTSP is being used, the UE MUST, on receiving a 200 OK
   response to the SETUP request, retrieve and store the Session header
   for the purpose of issuing an RTSP PLAY request later.

10.2.2.  Media Playback Initiation Procedure

   The UE MUST follow the procedures in this section to initiate media
   playback using the RTSP PLAY method.  The RTSP fields in the RTSP
   PLAY message MUST be filled as follows:

   o  The RTSP URL will be set to the value retrieved from the
      etsi_rtsp-uri attribute in the SDP answer from the controller in
      the case of an absolute URI.  If the value of the etsi_rtsp-uri is
      a relative URI that is in the form of a media path, then the RTSP
      absolute URL is constructed by the UE using the SDP IP address
      (from c-line) and port (from m-line) as the base followed by a
      etsi_rtsp-uri value for the media path (e.g.,
      rtsp://10.5.1.72:22554/TV3/823527).  If the value of the
      etsi_rtsp-uri is an absolute URL, the UE MUST NOT perform a DNS
      lookup.  The target transport address of the RTSP PLAY message
      MUST be set to the IP address obtained from the connection line
      ("c=") in the SDP answer and the port from the media line ("m=").
   o  The Range parameter MAY be present and set to the value retrieved
      from the SDP etsi_rtsp-offset attribute.
   o  If using Method 2 (full RTSP), a Session header MUST be included.
      The value of the header MUST be set to the same value as in the
      RTSP SETUP request.






Lindquist, et al.       Expires December 11, 2010              [Page 33]

Internet-Draft           Combining SIP and RTSP                June 2010


10.2.3.  Media Playback Modification Procedure

   The UE MUST follow the procedures in this section to modify media
   playback.  The direction and/or speed of media playback is modified
   by including a Scale header within the RTSP PLAY request as specified
   in [RFC2326].

10.2.4.  Media Playback Information Retrieval and Setting Procedure

   The UE MAY retrieve the following information using the RTSP
   GET_PARAMETER request:

   o  position: the position in the media in seconds.
   o  scales: the allowed scales that can be used in the PLAY request.
   o  duration

   The UE MAY also set the position parameter by sending an RTSP
   SET_PARAMETER request.  An empty body is allowed for RTSP keepalives.

10.2.5.  Media Event Notification Procedure

   If the UE receives an RTSP ANNOUNCE with a notice-code that it does
   not recognize, it should ignore the request.

10.2.6.  Media Teardown Procedure

   A TEARDOWN request is only allowed if Method 2 (full RTSP) is being
   used.  If Method 1 (lightweight RTSP) is being used, a TEARDOWN
   request MUST NOT be sent.  The contents of a TEARDOWN request MUST be
   set as follows:

   o  The RTSP URL header MUST be set to the media RTSP URL obtained
      from the session initiation.  If a domain address is used in the
      RTSP URL, the UE MUST NOT perform a DNS lookup.  The target
      transport address of the RTSP SETUP request MUST be set to the IP
      address obtained from the connection line ("c=") in the SDP answer
      and the port from the media line ("m=").
   o  The value of the Session header MUST be set to the same value as
      in the SETUP request.

10.3.  Procedures at Media Server

   The media server MUST answer as defined in [RFC2326] and [RFC3261].

   The media server may use an RTSP ANNOUNCE to notify the UE of any
   asynchronous events related to the media stream (e.g., end-of-
   stream).




Lindquist, et al.       Expires December 11, 2010              [Page 34]

Internet-Draft           Combining SIP and RTSP                June 2010


11.  Examples

   The examples below illustrate how the SDP offer/answer model can be
   used to establish an RTSP content control channel and a video stream
   controlled by RTSP.

11.1.  Content on Demand Session Establishment Using Lightweight RTSP
       (Method 1)

   This section shows examples of SIP and RTSP messages used to
   establish a content on demand session using Method 1 (lightweight
   RTSP).  The corresponding signaling flow is shown in Figure 5.

   Figure 10 shows the SIP INVITE request sent in step (1) of Figure 5.


   INVITE sip:vod1234@10.2.6.123 SIP/2.0
   Via: SIP/2.0/UDP 10.5.1.72:5060;branch=z9hG4bK-1180443107619999155
   Max-Forwards: 70
   To: <sip:vod1234@10.2.6.123>
   From: user1 <sip:user1@iptv.example.com>;tag=1180443107619999153
   Call-ID: C-1180443107619999154@10.5.1.72
   CSeq: 1 INVITE
   Contact: user1 <sip:user1@10.5.1.72:5060;transport=udp>
   Content-Length: 156
   Content-Type: application/sdp

   v=0
   o=- 1180443107599999 1 IN IP4 10.5.1.72
   s=-
   t=0 0
   m=application 9 TCP/ETSI_RTSP *
   c=IN IP4 10.5.1.72
   a=setup:active
   a=connection:new
   m=video 10002 RTP/AVP 33
   c=IN IP4 10.5.1.72
   b=AS:17000
   a=recvonly

               Figure 10: SIP INVITE request with SDP offer

   Figure 11 shows the SIP 200 OK (INVITE) response sent in step (6) of
   Figure 5.







Lindquist, et al.       Expires December 11, 2010              [Page 35]

Internet-Draft           Combining SIP and RTSP                June 2010


   SIP/2.0 200 OK
   To: <sip:vod1234@iptv.example.com>;tag=f2ad5t6i-4b
   From: "user1"<sip:user1@iptv.example.com>;tag=1180443107619999153
   Call-ID: C-1180443107619999154@10.5.1.72
   CSeq: 1 INVITE
   Content-Length: 349
   Via: SIP/2.0/UDP 10.5.1.72:5060;branch=z9hG4bK-1180443107619999155
   Record-Route: <sip:3Zqkv5baiCsip%3Auser1%40iptv.example.com@
       proxy.iptv.example.com:5060;maddr=130.100.86.35;lr>
   Contact: <sip:10.2.6.123:5060>
   Content-Type: application/sdp

   v=0
   o=- 2890844526 2 IN IP4 10.5.1.72
   s=-
   t=0 0
   m=application 554 TCP/ETSI_RTSP *
   c=IN IP4 10.2.6.123
   a=setup:passive
   a=connection:new
   a=etsi_rtsp-session:56465465
   a=etsi_rtsp-uri:rtsp://foo.com/TV3/TimeShift/823527
   a=etsi_rtsp-offset:0
   m=video 4002 RTP/AVP 33
   c=IN IP4 10.2.6.123
   b=AS:0
   a=sendonly


          Figure 11: SIP 200 OK response (INVITE) with SDP answer

   Figure 12 shows the SIP ACK request sent in step (8) of Figure 5.


   ACK sip:10.2.6.123:5060 SIP/2.0
   Via: SIP/2.0/UDP 10.5.1.72:5060;branch=z9hG4bK-1180443108219999156
   Max-Forwards: 70
   Route: <sip:3Zqkv5baiCsip%3Auser1%40iptv.example.com@
       pcscf.iptv.example.com:5060;maddr=130.100.86.35;lr>
   To: <sip:vod1234@10.2.6.123>;tag=f2ad5t6i-4b
   From: user1 <sip:user1@iptv.example.com>;tag=1180443107619999153
   Call-ID: C-1180443107619999154@10.5.1.72
   CSeq: 1 ACK
   Content-Length: 0


                        Figure 12: SIP ACK request




Lindquist, et al.       Expires December 11, 2010              [Page 36]

Internet-Draft           Combining SIP and RTSP                June 2010


   Figure 13 shows the RTSP PLAY request sent in step (9) of Figure 5.


   PLAY rtsp://foo.com/TV3/TimeShift/823527 RTSP/1.0
   CSeq: 2
   Session: 56465465
   Scale: 1
   Range: npt=0-


                       Figure 13: RTSP PLAY request

   Figure 14 shows the RTSP 200 OK (PLAY) response sent in step (10) of
   Figure 5.


   RTSP/1.0 200 OK
   CSeq: 2
   Session: 56465465


                  Figure 14: RTSP 200 OK response (PLAY)

11.2.  Content on Demand Session Establishment Using Full RTSP (Method
       2)

   This section shows examples of SIP and RTSP messages used to
   establish a content on demand session using Method 2 (full RTSP).
   The corresponding signaling flow is shown in Figure 8.

   Figure 15 shows the SIP INVITE request sent in step (1) of Figure 8.




















Lindquist, et al.       Expires December 11, 2010              [Page 37]

Internet-Draft           Combining SIP and RTSP                June 2010


   INVITE sip:vod1234@10.2.6.123 SIP/2.0
   Via: SIP/2.0/UDP 10.5.1.72:5060;branch=z9hG4bK-1180443107619999155
   Max-Forwards: 70
   To: <sip:vod1234@10.2.6.123>
   From: user1 <sip:user1@iptv.example.com>;tag=1180443107619999153
   Call-ID: C-1180443107619999154@10.5.1.72
   CSeq: 1 INVITE
   Contact: user1 <sip:user1@10.5.1.72:5060;transport=udp>
   Content-Length: 156
   Content-Type: application/sdp

   v=0
   o=- 1180443107599999 1 IN IP4 10.5.1.72
   s=-
   t=0 0
   m=application 9 TCP/ETSI_RTSP *
   c=IN IP4 10.5.1.72
   a=setup:active
   a=connection:new
   m=video 10002 RTP/AVP 33
   c=IN IP4 10.5.1.72
   b=AS:17000
   a=recvonly

               Figure 15: SIP INVITE request with SDP offer

   Figure 16 shows the SIP 200 OK (INVITE) response sent in step (6) of
   Figure 8.























Lindquist, et al.       Expires December 11, 2010              [Page 38]

Internet-Draft           Combining SIP and RTSP                June 2010


   SIP/2.0 200 OK
   To: <sip:vod1234@iptv.example.com>;tag=f2ad5t6i-4b
   From: "user1"<sip:user1@iptv.example.com>;tag=1180443107619999153
   Call-ID: C-1180443107619999154@10.5.1.72
   CSeq: 1 INVITE
   Content-Length: 349
   Via: SIP/2.0/UDP 10.5.1.72:5060;branch=z9hG4bK-1180443107619999155
   Record-Route: <sip:3Zqkv5baiCsip%3Auser1%40iptv.example.com@
       proxy.iptv.example.com:5060;maddr=130.100.86.35;lr>
   Contact: <sip:10.2.6.123:5060>
   Content-Type: application/sdp

   v=0
   o=- 2890844526 2 IN IP4 10.5.1.72
   s=-
   t=0 0
   m=application 554 TCP/ETSI_RTSP *
   c=IN IP4 10.2.6.123
   a=setup:passive
   a=connection:new
   a=etsi_rtsp-uri:rtsp://foo.com/TV3/TimeShift/823527
   a=etsi_rtsp-offset:0
   m=video 4002 RTP/AVP 33
   c=IN IP4 10.2.6.123
   b=AS:0
   a=sendonly


          Figure 16: SIP 200 OK response (INVITE) with SDP answer

   Figure 17 shows the SIP ACK request sent in step (8) of Figure 8.


   ACK sip:10.2.6.123:5060 SIP/2.0
   Via: SIP/2.0/UDP 10.5.1.72:5060;branch=z9hG4bK-1180443108219999156
   Max-Forwards: 70
   Route: <sip:3Zqkv5baiCsip%3Auser1%40iptv.example.com@
       pcscf.iptv.example.com:5060;maddr=130.100.86.35;lr>
   To: <sip:vod1234@10.2.6.123>;tag=f2ad5t6i-4b
   From: user1 <sip:user1@iptv.example.com>;tag=1180443107619999153
   Call-ID: C-1180443107619999154@10.5.1.72
   CSeq: 1 ACK
   Content-Length: 0


                        Figure 17: SIP ACK request

   Figure 18 shows the RTSP SETUP request sent in step (9) of Figure 8.



Lindquist, et al.       Expires December 11, 2010              [Page 39]

Internet-Draft           Combining SIP and RTSP                June 2010


   SETUP rtsp://foo.com/TV3/TimeShift/823527 RTSP/1.0
   CSeq: 1
   Transport: RTP/AVP/UDP;unicast;client_port=10002-10003


                       Figure 18: RTSP SETUP request

   Figure 19 shows the RTSP 200 OK (SETUP) response sent in step (10) of
   Figure 8.


   RTSP/1.0 200 OK
   CSeq: 1
   Session: 12345678
   Transport: RTP/AVP/UDP;unicast;client_port=10002-10003;
       server_port=4002-4003


                  Figure 19: RTSP 200 OK response (SETUP)

   Figure 20 shows the RTSP PLAY request sent in step (11) of Figure 8.


   PLAY rtsp://foo.com/TV3/TimeShift/823527 RTSP/1.0
   CSeq: 2
   Session: 12345678
   Scale: 1
   Range: npt=0-


                       Figure 20: RTSP PLAY request

   Figure 21 shows the RTSP 200 OK (PLAY) response sent in step (12) of
   Figure 8.


   RTSP/1.0 200 OK
   CSeq: 2
   Session: 12345678


                  Figure 21: RTSP 200 OK response (PLAY)

11.3.  Content on Demand Session Termination Using Lightweight RTSP
       (Method 1)

   This section shows examples of SIP messages used to terminate a
   content on demand session using Method 1 (lightweight RTSP).  The



Lindquist, et al.       Expires December 11, 2010              [Page 40]

Internet-Draft           Combining SIP and RTSP                June 2010


   corresponding signaling flow is shown in Figure 7.

   Figure 22 shows the SIP BYE request sent in step (2) of Figure 7.


   BYE sip:10.2.6.123:5060 SIP/2.0
   Via: SIP/2.0/UDP 10.5.1.72:5060;branch=z9hG4bK-1180443149349999157
   Max-Forwards: 70
   Route: <sip:3Zqkv5baiCsip%3Auser1%40iptv.example.com@
       pcscf.iptv.example.com:5060;maddr=130.100.86.35;lr>
   To: <sip:vod1234@10.2.6.123>;tag=f2adcfg0-4i
   From: user1 <sip:user1@iptv.example.com>;tag=1180443107619999153
   Call-ID: C-1180443107619999154@10.5.1.72
   CSeq: 2 BYE
   Content-Length: 0


                        Figure 22: SIP BYE request

   Figure 23 shows the SIP 200 OK (BYE) response sent in step (7) of
   Figure 7.


   SIP/2.0 200 OK
   To: <sip:vod1234@10.2.6.123>;tag=f2adcfg0-4i
   From: "user1"<sip:user1@iptv.example.com>;tag=1180443107619999153
   Call-ID: C-1180443107619999154@10.5.1.72
   CSeq: 2 BYE
   Content-Length: 0
   Via: SIP/2.0/UDP 10.5.1.72:5060;branch=z9hG4bK-1180443149349999157


                   Figure 23: SIP 200 OK response (BYE)

11.4.  Content on Demand Session Termination Using Full RTSP (Method 2)

   This section shows examples of SIP and RTSP messages used to
   terminate a content on demand session using Method 2 (full RTSP).
   The corresponding signaling flow is shown in Figure 9.

   Figure 24 shows the RTSP TEARDOWN request sent in step (1) of
   Figure 9.

   TEARDOWN rtsp://foo.com/TV3/TimeShift/823527 RTSP/1.0
   CSeq: 3
   Session: 12345678





Lindquist, et al.       Expires December 11, 2010              [Page 41]

Internet-Draft           Combining SIP and RTSP                June 2010


                     Figure 24: RTSP TEARDOWN request

   Figure 25 shows the RTSP 200 OK (TEARDOWN) response sent in step (3)
   of Figure 9.

   RTSP/1.0 200 OK
   CSeq: 3

                Figure 25: RTSP 200 OK response (TEARDOWN)

   Figure 26 shows the SIP BYE request sent in step (5) of Figure 9.


   BYE sip:10.2.6.123:5060 SIP/2.0
   Via: SIP/2.0/UDP 10.5.1.72:5060;branch=z9hG4bK-1180443149349999157
   Max-Forwards: 70
   Route: <sip:3Zqkv5baiCsip%3Auser1%40iptv.example.com@
       pcscf.iptv.example.com:5060;maddr=130.100.86.35;lr>
   To: <sip:vod1234@10.2.6.123>;tag=f2adcfg0-4i
   From: user1 <sip:user1@iptv.example.com>;tag=1180443107619999153
   Call-ID: C-1180443107619999154@10.5.1.72
   CSeq: 2 BYE
   Content-Length: 0


                        Figure 26: SIP BYE request

   Figure 27 shows the SIP 200 OK (BYE) response sent in step (9) of
   Figure 9.


   SIP/2.0 200 OK
   To: <sip:vod1234@10.2.6.123>;tag=f2adcfg0-4i
   From: "user1"<sip:user1@iptv.example.com>;tag=1180443107619999153
   Call-ID: C-1180443107619999154@10.5.1.72
   CSeq: 2 BYE
   Content-Length: 0
   Via: SIP/2.0/UDP 10.5.1.72:5060;branch=z9hG4bK-1180443149349999157


                   Figure 27: SIP 200 OK response (BYE)


12.  Conclusion

   This document described the steps taken at ETSI TISPAN to achieve
   better interaction between the SIP and RTSP protocols.  We see such
   an interaction beneficial since it makes it possible to reuse much of



Lindquist, et al.       Expires December 11, 2010              [Page 42]

Internet-Draft           Combining SIP and RTSP                June 2010


   the architecture and functionality (e.g., authentication, charging,
   and QoS) that have already been established around SIP also for RTSP
   streaming.  The document described a model in which SIP/SDP is used
   to establish an RTSP control channel and one or more content delivery
   streams.  The fact that this model has already been adopted by
   standardization bodies such as ETSI TISPAN, 3GPP, and Open IPTV Forum
   proves that there exists a clear need in the industry for a solution
   like this.  Two approaches for combining SIP and RTSP were described.
   The first approach removes session setup and teardown semantics from
   the RTSP protocol, whereas the second approach tries to keep both SIP
   and RTSP as intact as possible


13.  Security Considerations

   RFC 4145 [RFC4145] discusses security issues related to the
   establishment of TCP connections using the SDP offer/answer model.
   Security issues related to the SDP offer/answer model and SDP are
   discussed in the SDP offer/answer model RFC [RFC3264], and the SDP
   RFC [RFC4566], respectively.

13.1.  Man-in-the-middle Attack

   Numerous attacks are possible if an attacker can modify SDP offers or
   answers in transit.  These attacks are discussed in the SDP offer/
   answer model RFC [RFC3264].

13.2.  Session Hijacking

   A session ID parameter is used to correlate SIP and RTSP.  Session
   hijacking may be possible if the session ID is exposed to a third
   party.

13.3.  Privacy Considerations

   If the identity of a client is to remain hidden, the instructions in
   [RFC3261] can be followed to generate anonymous SIP header field
   values.


14.  IANA Considerations

14.1.  Registration of the 'TCP/ETSI_RTSP' and 'TCP/TLS/ETSI_RTSP' SDP
       'proto' Values

   This document defines the following two new values for the SDP
   'proto' field under the Session Description Protocol (SDP) Parameters
   registry:



Lindquist, et al.       Expires December 11, 2010              [Page 43]

Internet-Draft           Combining SIP and RTSP                June 2010


                     +-------------------+-----------+
                     |       Value       | Reference |
                     +-------------------+-----------+
                     |   TCP/ETSI_RTSP   |  RFCAAAA  |
                     | TCP/TLS/ETSI_RTSP |  RFCAAAA  |
                     +-------------------+-----------+

                 Table 1: Values for the SDP 'proto' field

14.2.  Registration of the SDP 'etsi_rtsp-uri' Attribute

   This document defines the following SDP att-field under the Session
   Description Protocol (SDP) Parameters registry:

   Contact name:  Jouni.Maenpaa@ericsson.com

   Attribute name:  etsi_rtsp-uri

   Long-form attribute name:  ETSI RTSP URI

   Type of attribute:  Media Level

   Subject to charset:  No

   Purpose of the attribute:  Contains the RTSP URL that is to be used
      in the RTSP content control requests.

   Allowed attribute values:  A string specifying an RTSP URL

14.3.  Registration of the SDP 'etsi_rtsp-session' Attribute

   This document defines the following SDP att-field under the Session
   Description Protocol (SDP) Parameters registry:

   Contact name:  Jouni.Maenpaa@ericsson.com

   Attribute name:  etsi_rtsp-session

   Long-form attribute name:  ETSI RTSP Session

   Type of attribute:  Media Level

   Subject to charset:  No








Lindquist, et al.       Expires December 11, 2010              [Page 44]

Internet-Draft           Combining SIP and RTSP                June 2010


   Purpose of the attribute:  Contains the session ID of the RTSP
      session.  May also specify optionally a keepalive interval for
      RTSP.

   Allowed attribute values:  a=etsi_rtsp-session:<session ID>
      [<timeout>].  The "session ID" attribute is a token specifying an
      RTSP session ID.  The optional "timeout" parameter specifies an
      RTSP keepalive interval in seconds.

14.4.  Registration of the SDP 'etsi_rtsp-offset' Attribute

   This document defines the following SDP att-field under the Session
   Description Protocol (SDP) Parameters registry:

   Contact name:  Jouni.Maenpaa@ericsson.com

   Attribute name:  etsi_rtsp-offset

   Long-form attribute name:  ETSI RTSP Offset

   Type of attribute:  Media Level

   Subject to charset:  No

   Purpose of the attribute:  Specifies the current playback position in
      seconds.

   Allowed attribute values:  A token

14.5.  Registration of the SDP 'etsi_rtsp-version' Attribute

   This document defines the following SDP att-field under the Session
   Description Protocol (SDP) Parameters registry:

   Contact name:  Jouni.Maenpaa@ericsson.com

   Attribute name:  etsi_rtsp-version

   Long-form attribute name:  ETSI RTSP Version

   Type of attribute:  Media Level

   Subject to charset:  No








Lindquist, et al.       Expires December 11, 2010              [Page 45]

Internet-Draft           Combining SIP and RTSP                June 2010


   Purpose of the attribute:  Specifies the RTSP protocol version.

   Allowed attribute values:  As an example, if the sender supports RTSP
      version 1.0, the value of the attribute is "1.0".  If the sender
      supports RTSP 2.0, the value is "2.0".


15.  Acknowledgements

   The authors would like to acknowledge those who have made
   contributions to combining SIP and RTSP over the years.  Among those
   who have provided valuable feedback are Sam Ganesan from Motorola,
   Magnus Westerlund from Ericsson, Steven Whitehead from Verizon,
   Marie-Jose Montpetit from MIT Media Labs, Mikhael Said, Hadriel
   Kaplan from Acme Packet and David Ress from Nortel.


16.  References

16.1.  Normative References

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

   [RFC2326]  Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time
              Streaming Protocol (RTSP)", RFC 2326, April 1998.

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

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

   [RFC4145]  Yon, D. and G. Camarillo, "TCP-Based Media Transport in
              the Session Description Protocol (SDP)", RFC 4145,
              September 2005.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, July 2006.

16.2.  Informative References

   [3GPP TS 26.237]
              "3rd Generation Partnership Project; Technical
              Specification Group Services and System Aspects; IP



Lindquist, et al.       Expires December 11, 2010              [Page 46]

Internet-Draft           Combining SIP and RTSP                June 2010


              Multimedia Subsystem (IMS) based Packet Switch Streaming
              (PSS) and Multimedia Broadcast/Multicast Service (MBMS)
              User Service; Protocols (Release 8)", 3GPP TS 26.237
              V8.1.1 (2009-03).

   [ETSI TS 183 063]
              "Telecommunications and Internet Converged Services and
              Protocols for Advanced Networking (TISPAN); IMS-based IPTV
              Stage 3 Specification", ETSI TS 183 063 v2.1.0 (2008-06).

   [I-D.ietf-lindquist-mmusic-sip-rtsp]
              Lindquist, J., Maenpaa, J., Rajagopal, P., and X. Marjou,
              "Session Description Protocol (SDP) Offer/Answer Model For
              Media Control Protocol",
              draft-lindquist-mmusic-sip-rtsp-00 Jun 2009.

   [I-D.ietf-sipping-sbc-funcs]
              Hautakorpi, J., Camarillo, G., Penfield, B., Hawrylyshen,
              A., and M. Bhatia, "Requirements from Session Initiation
              Protocol (SIP) Session Border Control (SBC) Deployments",
              draft-ietf-sipping-sbc-funcs-09 (work in progress),
              February 2010.

   [I-D.ietf-whitehead-mmusic-sip-for-streaming-media]
              Whitehead, S., Montpetit, M., Marjou, X., Ganesan, S., and
              J. Lindquist, "Media Playback Control Protocol
              Requirements",
              draft-whitehead-mmusic-sip-for-streaming-media-05
              (expired) May 2008.

   [I-D.ietf.marjou-mmusic-sdp-rtsp]
              Marjou, X., Lindquist, J., Rajagopal, P., Said, M., and S.
              Ganesan, "Session Description Protocol (SDP) Offer/Answer
              Model For Media Control Protocol",
              draft-marjou-mmusic-sdp-rtsp-01 (expired) Feb 2008.

   [OIPF Volume 4]
              "Open IPTV Forum - Release 1 Specification; Volume 4 -
              Protocols", V1.0 (January 6, 2009).

   [RFC2048]  Freed, N., Klensin, J., and J. Postel, "Multipurpose
              Internet Mail Extensions (MIME) Part Four: Registration
              Procedures", BCP 13, RFC 2048, November 1996.

   [RFC3234]  Carpenter, B. and S. Brim, "Middleboxes: Taxonomy and
              Issues", RFC 3234, February 2002.

   [RFC3312]  Camarillo, G., Marshall, W., and J. Rosenberg,



Lindquist, et al.       Expires December 11, 2010              [Page 47]

Internet-Draft           Combining SIP and RTSP                June 2010


              "Integration of Resource Management and Session Initiation
              Protocol (SIP)", RFC 3312, October 2002.

   [RFC3313]  Marshall, W., "Private Session Initiation Protocol (SIP)
              Extensions for Media Authorization", RFC 3313,
              January 2003.

   [RFC3455]  Garcia-Martin, M., Henrikson, E., and D. Mills, "Private
              Header (P-Header) Extensions to the Session Initiation
              Protocol (SIP) for the 3rd-Generation Partnership Project
              (3GPP)", RFC 3455, January 2003.

   [RFC4582]  Camarillo, G., Ott, J., and K. Drage, "The Binary Floor
              Control Protocol (BFCP)", RFC 4582, November 2006.

   [RFC4583]  Camarillo, G., "Session Description Protocol (SDP) Format
              for Binary Floor Control Protocol (BFCP) Streams",
              RFC 4583, November 2006.

   [RFC4740]  Garcia-Martin, M., Belinchon, M., Pallares-Lopez, M.,
              Canales-Valenzuela, C., and K. Tammi, "Diameter Session
              Initiation Protocol (SIP) Application", RFC 4740,
              November 2006.

   [RFC5432]  Polk, J., Dhesikan, S., and G. Camarillo, "Quality of
              Service (QoS) Mechanism Selection in the Session
              Description Protocol (SDP)", RFC 5432, March 2009.


Authors' Addresses

   Jan Lindquist
   Ericsson
   Tellusborgsvaegen 83-87
   Hagersten  12637
   Sweden

   Email: jan.lindquist@ericsson.com


   Jouni Maenpaa
   Ericsson
   Hirsalantie 11
   Jorvas  02420
   Finland

   Email: Jouni.Maenpaa@ericsson.com




Lindquist, et al.       Expires December 11, 2010              [Page 48]

Internet-Draft           Combining SIP and RTSP                June 2010


   Priya Rajagopal
   Motorola
   900 Chelmsford street ; T1;09
   Lowell, MA  01891
   USA

   Email: priyarajagopal@motorola.com


   Xavier Marjou
   France Telecom Orange
   2, avenue Pierre Marzin
   Lannion  22307
   France

   Email: xavier.marjou@orange-ftgroup.com



































Lindquist, et al.       Expires December 11, 2010              [Page 49]