Subject: [MMUSIC] Proposed update to draft-02

From: Tom Marshall <[email-masked]>
Date: Tue, 21 Jan 2003 21:20:07 -0800

The attached diff addresses the issues that Magnus and I have been
discussing in the past week.  Comments would be appreciated.

I will be attending the telecon tomorrow.

-- 
Nothing will dispel enthusiasm like a small admission fee.
        -- Kim Hubbard
--- draft-02-original.txt	2003-01-21 18:58:12.000000000 -0800
+++ draft-02.txt	2003-01-21 19:48:34.000000000 -0800
@@ -1202,7 +1202,7 @@
      + 2xx: Success - The action was successfully received, understood,
        and accepted
 
-     + 3xx: Redirection - Further action must be taken in order to com-
+     + 3rr: Redirection - Further action must be taken in order to com-
        plete the request
 
      + 4xx: Client Error - The request contains bad syntax or cannot be
@@ -2417,13 +2417,23 @@
 
 10.10 REDIRECT
 
-   A redirect request informs the client that it MUST connect to another |
-   server location. REDIRECT SHALL only be sent to the client who cur-   |
-   rently has a session at the server. The REDIRECT request MAY contain  |
-   the header Location, which indicates that the client should issue     |
-   requests for that URL. If the Location URL only contains a host       |
-   address the client shall connect to the given host, while using the   |
-   path from the URL on the current server.                              |
+   A redirect request informs the client that it MUST connect to another
+   server location. The REDIRECT request MAY contain the header Location,
+   which indicates that the client should issue requests for that URL. If
+   the Location URL only contains a host address the client shall connect to
+   the given host, while using the path from the URL on the current server.
+
+   If a REDIRECT request contains a Session header, it is end-to-end and
+   applies only to the given session.  If there are proxies in the request
+   chain, they SHOULD NOT disconnect the control channel unless there are
+   no remaining sessions.
+
+   If a REDIRECT request does not contain a Session header, it is next-hop
+   and applies to the control connection.  The Location header SHOULD only
+   contain a host address.  If there are proxies in the request chain, they
+   SHOULD disconnect the control channel, reconnect to the given host
+   address, and pass the request to each applicable client (typically those
+   clients with an active session or unanswered request from that server).
 
    The redirect request MAY contain the header Range, which indicates    |
    when the redirection takes effect. If the Range contains a time=      |
@@ -2436,11 +2446,6 @@
    time. The range value MUST be a single value in the open ended form,  |
    e.g. npt=59-.                                                         |
 
-   If a Session header is included in the REDIRECT request the client    |
-   MUST redirect the indicated session. If no Session header is included |
-   the client MUST redirect all sessions that it have on the server      |
-   sending the request.                                                  |
-
    If the client wants to continue to send or receive media for this     |
    resource, the client MUST issue a TEARDOWN request for the current    |
    session. A new session must be established with the designated host.  |
@@ -2647,7 +2652,11 @@
    processes on the server may be consuming storage space simultane-
    ously, a client should take this only as an estimate.
 
-11.3 Redirection 3xx
+11.3 Redirection 3rr
+
+   The notation "3rr" indicates response codes from 300 to 399 inclusive
+   which are meant for redirection.  The response code 304 is excluded
+   from this set, as it is not used for redirection.
 
    See [H10.3] for definition of status code 300 to 305. However com-    |
    ments are given for some to how they apply to RTSP. Further a couple  |
@@ -2679,6 +2688,24 @@
 
 11.3.5 304 Not Modified                                                  |
 
+   If the client has performed a conditional DESCRIBE or SETUP (see 12.23)
+   and the requested resource has not been modified, the server SHOULD send
+   a 304 response.  This response MUST NOT contain a message-body.
+
+   The response MUST include the following header fields:
+
+   - Date
+   - ETag and/or Content-Location, if the header would have been sent in
+     a 200 response to the same request.
+   - Expires, Cache-Control, and/or Vary, if the field-value might
+     differ from that sent in any previous response for the same variant.
+
+   This response is independent for the DESCRIBE and SETUP requests.  That
+   is, a 304 response to DESCRIBE does NOT imply that the resource content
+   is unchanged and a 304 response to SETUP does NOT imply that the resource
+   description is unchanged.  The ETag and If-Match headers may be used to
+   link the DESCRIBE and SETUP in this manner.
+
 11.3.6 305 Use Proxy                                                     |
 
    See [H10.3.6].                                                        |
@@ -3011,7 +3038,7 @@
    If-Match              R      r    -   -    o    -     -   -
    If-Modified-Since     R      r    o   -    o    -     -   -
    Last-Modified         r      r    o   -    -    -     -   -
-   Location             3xx          o   -    o    -     -   -
+   Location             3rr          o   -    o    -     -   -
    Proxy-Authenticate   407    amr   m   m    m    m     m   m
    Proxy-Require         R     ar    o   o    o    o     o   o
    Public                r    admr   -  m*    -    -     -   -
@@ -3028,7 +3055,7 @@
 Internet Draft                    RTSP                 November 01, 2002

-   Retry-After        3xx,503        o   o    o    -     -   -
+   Retry-After        3rr,503        o   o    o    -     -   -
    RTP-Info              r           -   -    o    m     -   -
    Scale                             -   -    -    o     -   -
    Session               R           -   o    o    m     m   m
@@ -3125,7 +3152,7 @@
    Range                 R           -   -   -   -   o   -
    Referer               R           o   o   o   o   o   -
    Require               R           o   o   o   o   o   o
-   Retry-After        3xx,503        o   o   -   -   -   -
+   Retry-After        3rr,503        o   o   -   -   -   -
    Scale                             -   -   -   o   -   -
    Session               R           o   o   m   m   o   m
    Session               r           c   c   m   m   o   m
@@ -5830,8 +5857,9 @@
 
    type of error occur the appropriate response code MUST be sent. If    |
    the response code is a 4xx the session state is unchanged. A response |
-   code of 3xx will result in that the session is ended and its state is |
-   changed to Init. However there exist restrictions to when a 3xx       |
+   code of 3rr will result in that the session is ended and its state is |
+   changed to Init. A response code of 304 results in no state change.
+   However there exist restrictions to when a 3xx       |
    response may be used. A 5xx response SHALL not result in any change   |
    of the session state, except if the error is not possible to recover  |
    from. A unrecoverable error SHALL result the ending of the session.   |
@@ -5855,7 +5883,7 @@
 
    Event         Prerequisite      Response
    -----------------------------------------------------------------
-   DESCRIBE      Needs REDIRECT    3xx Redirect
+   DESCRIBE      Needs REDIRECT    3rr Redirect
    DESCRIBE                        200, Session description
    OPTIONS       Session ID        200, Reset session timeout timer
    OPTIONS                         200
@@ -5888,20 +5916,20 @@
             Action  Requisite       New State  Response
             -------------------------------------------------
             SETUP                     Ready    NRM=1, RP=0.0
-            SETUP   Needs Redirect    Init     3xx Redirect
+            SETUP   Needs Redirect    Init     3rr Redirect

    Table 7: State: Init
 
    state variables are also set by a correct request. This table also    |
    shows that a correct SETUP can in some cases be redirected to another |
-   URL and/or server by a 3xx response.                                  |
+   URL and/or server by a 3rr response.                                  |

        Action         Requisite       New State  Response
        ----------------------------------------------------------
        SETUP                            Ready    NRM=1,RP=0.0
-       SETUP          Needs Redirect    Init     3xx
+       SETUP          Needs Redirect    Init     3rr
        TEARDOWN       URL=*             Init     No session hdr.
        Timeout                          Init
        S->C:REDIRECT  Range hdr       Ready-nm   Set RedP
@@ -7187,7 +7215,7 @@
 11.1.1     100 Continue  . . . . . . . . . . . . . . . . . . . . . .  47
 11.2       Success 2xx . . . . . . . . . . . . . . . . . . . . . . .  48
 11.2.1     250 Low on Storage Space  . . . . . . . . . . . . . . . .  48
-11.3       Redirection 3xx . . . . . . . . . . . . . . . . . . . . .  48
+11.3       Redirection 3rr . . . . . . . . . . . . . . . . . . . . .  48
 11.3.1     TBW . . . . . . . . . . . . . . . . . . . . . . . . . . .  48
 11.3.2     301 Moved Permanently . . . . . . . . . . . . . . . . . .  48
 11.3.3     302 Found . . . . . . . . . . . . . . . . . . . . . . . .  48