INTERNET DRAFT
   draft-hoschka-smilsdp-01.txt
   August 30, 1998
   Expires February 1, 1999

                    Integrating SDP Functionality Into SMIL

   [2][LINK]

   [3]Philipp Hoschka, [4]W3C
     _________________________________________________________________

1. Status of this Memo

   This document is an Internet Draft. Internet Drafts are working
   documents of the Internet Engineering Task Force (IETF), its Areas,
   and its Working Groups. Note that other groups may also distribute
   working documents as Internet Drafts. Internet Drafts are 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 a "working
   draft" or "work in progress." Distribution of this memo is unlimited.

   This is an update of
   [5]http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00. It
   fixes a bug in the example that was pointed out in feedback, and adds
   pointers to the definitions of the SMIL elements used in the example.
   The draft has been presented at the 42nd IETF meeting. The conclusion
   was that this draft provides an interim solution at best. Future work
   should focus less on keeping in line with the current SDP structure,
   but rather integrate SDP functionality more directly into SMIL, while
   reusing the values that have been registered for SDP. Consequently,
   there are currently no plans for further work on this draft.

Table of Contents

     * [6]1. Status of this Memo
     * [7]2. Abstract
     * [8]3. Example
     * [9]3. Mapping Approach
     * [10]4. Integrating SDP Fields into SMIL
          + [11]4.1 Origin
               o [12]4.1.1 origin Element
          + [13]4.2 Session Name
               o [14]Example
          + [15]4.3 Session Info
               o [16]4.3.1 info Element
               o [17]4.3.2 Media level use
               o [18]Example
          + [19]4.4 URI
               o [20]4.4.1 uri Element
          + [21]4.5 Email Address
               o [22]4.5.1 email Element
          + [23]4.6 Phone
               o [24]4.6.1 phone Element
          + [25]4.7 Connection Data
               o [26]Example
               o [27]Example
               o [28]Example
          + [29]4.8 Bandwidth
               o [30]4.8.1 bandwidth Element
          + [31]4.9 Times
               o [32]4.9.1 times Element
          + [33]4.10 Repeat Time
               o [34]4.10.1 repeat-time Element
          + [35]4.11 Time Adjustement
               o [36]4.11.1 time-adjustement Element
          + [37]4.12 Encryption Keys
               o [38]4.12.1 key Element
          + [39]4.13 Attributes
               o [40]4.13.1 attribute Element
          + [41]4.14 Media Announcements
               o [42]Example
               o [43]4.14.1 rtpmap Element
          + [44]4.15 Suggested Attributes
     * [45]Acknowledgements
     * [46]Authors Address

2. Abstract

   This document describes an approach for integrating the functionality
   currently contained in [47]SDP (Session Announcement Protocol) into
   [48]SMIL (Synchronized Multimedia Integration Language). The
   motivation is to make it easier for SMIL authors to interface with the
   existing RTP/MBone infrastructure. Currently, this requires
   maintaining two different sets of files, each of which use a different
   text format. Another motivation is to save one network round-trip per
   RTSP URL in the SMIL file, since the information contained in the SDP
   file is now directly included in the SMIL file.

3. Example

   The following shows how the sdp example contained in the SDP RFC can
   be integrated into a SMIL file, using the mapping defined in this
   document.

   SDP announcement:
      v=0
      o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4
      s=SDP Seminar
      i=A Seminar on the session description protocol
      u=http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
      e=mjh@isi.edu (Mark Handley)
      c=IN IP4 224.2.17.12/127
      t=2873397496 2873404696
      a=recvonly
      m=audio 49170 RTP/AVP 0
      m=video 51372 RTP/AVP 31
      m=application 32416 udp wb
      a=orient:portrait

   Inclusion in SMIL file:
      <smil
         xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-
00">
        <head>
         <sdp:origin username="mhandley" session-id="2890844526"
              version="2890842807" network-type="IN"
              address-type="IP4" address="126.16.64.4"
          />
         <sdp:times start-time="2873397496" stop-time="2873404696" />
         <meta name="title" content="SDP Seminar" />
         <sdp:info xml:lang="en">
            A Seminar on the session description protocol
         </sdp:info>
         <sdp:uri>
           http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps
         </sdp:uri>
         <sdp:email>ph@w3.org</sdp:email>
        </head>
        <body>
          <par>
            <audio src="mbone:224.2.17.12/127" sdp:port="49170"
                   sdp:transport="RTP/AVP" sdp:fmt-list="0" />
            <video src="mbone:224.2.17.12/127" sdp:port="51372"
                   sdp:transport="RTP/AVP" sdp:fmt-list="31" />
            <ref src="mbone:224.2.17.12/127" sdp:port="32416"
                 sdp:transport="udp" type="application/wb" >
              <sdp:attribute attribute-name="orient" value="portrait" />
            </ref>
          </par>
        </body>
      </smil>

   This example uses the following SMIL elements:
     * [49]meta
     * [50]par
     * [51]media object elements audio, video and ref

3. Mapping Approach

   Only the information contained in a SDP session announcement is mapped
   onto SMIL. An SDP session announcement consists of several fields.
   These fields can either be session level fields, or media level
   fields. In general, information contained in SDP session level fields
   are mapped into information contained within the "head" part of a SMIL
   document. Information contained in SDP media level fields is mapped
   onto information assiocated with individual media objects in a SMIL
   document.

   The mapping below allows integrating all information in a SDP
   announcement into SMIL.

   SDP information is included in a SMIL document in two different ways:
     * mapping SDP information into existing attributes, when possible
     * defining a set of new XML elements and attributes that can be
       included into a SMIL document via the [52]XML namespace mechanism

4. Integrating SDP Fields into SMIL

  4.1 Origin

   This SDP field requires defining a new element.

    4.1.1 origin Element

   This represents the information of the "orgin" field in SDP. It is
   mandatory for a SMIL document that is transmitted in a multicast
   announcement.

      Element Attributes

   username
          Syntax and semantics defined in SDP specification. This is an
          optional attribute, and the default value is "-".

   session-id
          Syntax and semantics defined in SDP specification

   version
          Syntax and semantics defined in SDP specification

   network-type
          Syntax and semantics defined in SDP specification. This is an
          optional attribute, and the default value is "IN".

   address-type
          Syntax and semantics defined in SDP specification. This is an
          optional attribute, and the default value is "IP4".

   address
          Syntax and semantics defined in SDP specification

      Element Content

   "origin" is an empty element.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:origin username="mhandley" session-id="2890844526"
              version="2890842807" network-type="IN"
              address-type="IP4" address="126.16.64.4"
    />
    ...
  </head>
  ...
</smil>

  4.2 Session Name

   This SDP field can be mapped onto the "title" property of the SMIL
   "meta" element.

    Example

<smil>
  <head>
    <meta name="title" content="SDP Seminar" />
    ...
  </head>
  ...
</smil>

  4.3 Session Info

   This SDP field can be used in the session-level section and in a
   media-level section.

   For mapping session-level use into SMIL, this requires defining a new
   element.

    4.3.1 info Element

      Element Attributes

   xml:lang
          Syntax and semantics defined in XML specifiation

      Element Content

   "info" element contains the text of the session description.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:info xml:lang="en">
      A Seminar on the session description protocol
    </sdp:info>
    ...
  </head>
  ...
</smil>

    4.3.2 Media level use

   For media-level use, the "info" field can be mapped onto the "title"
   attribute.

    Example

<smil>
  <body>
    <audio src="http://www.w3.org/audio.au" title="Audio of SDP seminar" />
  </body>
</smil>

  4.4 URI

   This SDP field requires defining a new element.

    4.4.1 uri Element

   The element can only occur within the "head" part of a SMIL document.

      Element Attributes

   This element has no attributes.

      Element Content

   The element contains the URI value.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:uri>http://www.cs.ucl.ac.uk/staff/M.Handley/sdp.03.ps</sdp:uri>
    ...
  </head>
  ...
</smil>

  4.5 Email Address

   This SDP field requires defining a new element.

    4.5.1 email Element

   The element can only occur within the "head" part of a SMIL document.

      Element Attributes

   This element has no attributes.

      Element Content

   The element contains the email address

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:email>ph@w3.org</sdp:email>
    ...
  </head>
  ...
</smil>

  4.6 Phone

   This session-level SDP field requires defining a new element.

    4.6.1 phone Element

   The element can only occur within the "head" part of a SMIL document.

      Element Attributes

   This element has no attributes.

      Element Content

   The element contains the phone number.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:phone>+1 617 256 8113</sdp:phone>
    ...
  </head>
  ...
</smil>

  4.7 Connection Data

   The information of this SDP field is contained in the URI identifying
   the resource.

   The network type can either be deduced from the URI scheme, or be
   completely transparent.

   Determining the address type is either not necessary (because the URI
   contains a hostname), or it can be derived from the URI scheme.

   For addressing resources that are multicast, a new "mbone" URI scheme
   is needed. It looks as follows:

   "mbone:"<base multicast address>"/"<ttl>"/"<number of addresses>

   @@ check whether consistent with guidelines for doing URIs

    Example

mbone:224.2.1.1./127/3

   This SDP field can be used in the session-level section and in a
   media-level section.

   For mapping session-level use of connection data into SMIL, a "meta"
   element can be used for defining a base URI.

    Example

<smil>
  <head>
    <meta name="base" content="rtsp://www.w3.org/" />
    ...
  </head>
  ...
</smil>

   For mapping media-level use into SMIL, the connection data field can
   be mapped onto the "src" attribute of a media-object element.

    Example

<smil>
  <body>
    <audio src="mbone:224.2.1.1./127/3" />
  </body>
</smil>

  4.8 Bandwidth

   This SDP field requires defining a new element.

    4.8.1 bandwidth Element

      Element Attributes

   modifier
          Syntax and semantics defined in SDP specifiation

   bandwidth
          Syntax and semantics defined in SDP specifiation

      Element Content

   "bandwidth" is an empty element.

   The "bandwidth"  SDP field can be used in the session-level section
   and in a media-level section.

   Use this field in the session-level section is mapped onto using the
   "bandwidth" element in the "head" part of a SMIL document.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:bandwidth modifier="CT" bandwidth="28"/>
    ...
  </head>
  ...
</smil>

   Use of this field in the media-level section is mapped onto using the
   "bandwitdh" element as content of a SMIL media object.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <body>
    <audio src="mbone:224.2.1.1./127/3">
      <sdp:bandwidth modifier="CT" bandwidth="28"/>
    </audio>
  </body>
</smil>

  4.9 Times

   This session-level SDP field requires defining a new element.

    4.9.1 times Element

   The element can only occur within the "head" part of a SMIL document.

      Element Attributes

   start-time
          Syntax and semantics defined in SDP specifiation

   stop-time
          Syntax and semantics defined in SDP specifiation

      Element Content

   The "times" element can contain the following element:

   repeat-time
          Defined below

   zone-adjustement
          Defined below

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:times start-time="3034423619" stop-time="3042462419" />
  </head>
  ..
</smil>

  4.10 Repeat Time

   This session-level SDP field requires defining a new element.

    4.10.1 repeat-time Element

   The element can only occur within the "head" part of a SMIL document
   as content of a "time" element. The "time" element can contain not
   more than one "repeat-time" element.

      Element Attributes

   interval
          Syntax and semantics defined in SDP specifiation

   active-duration
          Syntax and semantics defined in SDP specifiation

   offsets
          A comma seperated list of values whose semantics is defined in
          the SDP specification

      Element Content

   "repeat-times" is an empty element.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:times start-time="3034423619" stop-time="3042462419" >
      <sdp:repeat-times interval="604800" active-duration="3600"
           offsets="0, 9000" />
    </sdp:times>
  </head>
  ...
</smil>

  4.11 Time Adjustement

   This session-level SDP field requires defining a new element.

    4.11.1 time-adjustement Element

   The element can only occur within the "head" part of a SMIL document
   as content of a "time" element. The "time" element can contain
   multiple "time-adjustement" elements, one for each adjustement (note
   that this leads to a different structure than used by the "z" field in
   sdp).

      Element Attributes

   adjustement-time
          Syntax and semantics defined in SDP specifiation

   offset
          Syntax and semantics defined in SDP specifiation

      Element Content

   "time-adjustement" is an empty element.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:times start-time="3034423619" stop-time="3042462419" >
      <sdp:repeat-times interval="604800" active-duration="3600"
           offsets="0, 9000" />
      <sdp:time-adjustement adjustement-time="2882844526" offset="-1h" />
      <sdp:time-adjustement adjustement-time="2898848070" offset="0" />
    </sdp:times>
  </head>
  ...
</smil>

  4.12 Encryption Keys

   This SDP field can be used both at the session-level and at the media
   level. It requires defining a new element.

    4.12.1 key Element

      Element Attributes

   method
          Syntax and semantics defined in SDP specifiation

   encryption-key
          Syntax and semantics defined in SDP specifiation

      Element Content

   "key" is an empty element.

   To mimic SDP use of encryption keys at the session-level, the "keys"
   element is included in the "head" part of the SMIL document.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:key method="clear" key="3042462419" />
  </head>
  ...
</smil>

   To mimic SDP-use of encryption keys at the media-level, the "keys"
   element is included in the content of a SMIL media object element.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <body>
    <audio src="mbone:224.2.1.1./127/3">
      <sdp:key method="clear" key="3042462419" />
    </audio>
  </body>
</smil>

  4.13 Attributes

   Unless specified otherwise, SDP attributes are mapped onto a generic
   "attribute" element.

    4.13.1 attribute Element

      Element Attributes

   attribute-name
          Syntax and semantics defined in SDP specifiation

   value
          Syntax and semantics defined in SDP specifiation

      Element Content

   "attribute" is an empty element

   If the attribute is used on the session-level, it is contained in the
   "head" section of the SMIL document.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <head>
    <sdp:attribute attribute-name="keywords"
        value="SDP, SMIL, Format, Multimedia" />
  </head>
  ...
</smil>

   Otherwise, it is included in the content of a SMIL media-object
   element.

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <body>
    <audio src="mbone:224.2.1.1./127/3">
      <sdp:attribute attribute-name="ptime" key="40" />
    </audio>
  </body>
</smil>

  4.14 Media Announcements

   The "m" SDP field is mapped onto attributes within SMIL media objects.

   The following attributes can be added to all SMIL media objects:

   port
          Syntax and semantics defined in SDP specifiation

   transport
          Syntax and semantics defined in SDP specifiation

   fmt-list
          Comma-seperated list of values whose syntax and semantics is
          defined in SDP specifiation

    Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <body>
    <audio src="mbone:224.2.1.1./127/3" sdp:port="49170"
           sdp:transport="RTP/AVP" sdp:fmt-list="31">
    </audio>
  </body>
</smil>

   If the media object uses the RTP format, and uses a dynamic payload
   type, SDP requires the use of the "rtpmap" attribute field. This is
   mapped onto the "rtpmap" element, which is contained in the content of
   the media object element.

    4.14.1 rtpmap Element

      Element Attributes

   payload
          Syntax and semantics defined in SDP specifiation

   encoding
          Syntax and semantics defined in SDP specifiation

      Element Content

   "rtpmap" is an empty element

      Example

<smil xmlns:sdp="http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00"
>
  <body>
    <audio src="mbone:224.2.1.1./127/3" sdp:port="49170"
           sdp:transport="RTP/AVP" sdp:fmt-list="96,97.98">
      <rtpmap payload="96" encoding="L8/8000" />
      <rtpmap payload="97" encoding="L16/8000" />
      <rtpmap payload="98" encoding="L16/11025/2" />
    </audio>
  </body>
</smil>

  4.15 Suggested Attributes

   The following "suggested attributes" of SDP are not mapped onto an
   "attribute" element:
     * charset: The charset of the SMIL document can be set using the
       mechanisms defined by the XML definition.
     * sdplang: The language of session-description information is set by
       the "xml:lang" attribute in the individual "info" elements.
       @@@ check XML spec: is there a way to set a global default
       language that is valid for the whole document ?
     * lang: The functionality of this is replaced by the
       "system-language" attribute in SMIL.

   All other "suggested attributes" are mapped onto an "attribute"
   element.

Acknowledgements

   Integrating SDP functionality with SMIL has been originally suggested
   by several other people to me in private.

Authors Address

     * Philipp Hoschka
       W3C/MIT Laboratory for Computer Science
       545 Technology Square
       Cambridge, MA 02139, USA
       Fax: +1 (617) 258-8682
       Email: ph@w3.org
     _________________________________________________________________

References

   1. http://www.w3.org/
   2. http://www.w3.org/Style/CSS/Buttons
   3. mailto:ph@w3.org
   4. http://www.w3.org/
   5. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-00
   6. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid58150
   7. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid58151
   8. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid58152
   9. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid58153
  10. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid58154
  11. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid58155
  12. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid58156
  13. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581510
  14. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581511
  15. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581512
  16. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581513
  17. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581517
  18. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581518
  19. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581519
  20. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581520
  21. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581524
  22. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581525
  23. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581529
  24. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581530
  25. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581534
  26. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581535
  27. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581536
  28. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581537
  29. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581538
  30. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581539
  31. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581544
  32. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581545
  33. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581549
  34. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581550
  35. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581554
  36. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581555
  37. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581559
  38. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581560
  39. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581565
  40. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581566
  41. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581571
  42. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581572
  43. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581573
  44. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581577
  45. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581578
  46. http://www.w3.org/AudioVideo/1998/08/draft-hoschka-smilsdp-01.html#xtocid581579
  47. http://info.internet.isi.edu/in-notes/rfc/files/rfc2327.txt
  48. http://www.w3.org/TR/REC-smil
  49. http://www.w3.org/TR/REC-smil/#meta
  50. http://www.w3.org/TR/REC-smil/#par
  51. http://www.w3.org/TR/REC-smil/#media-object
  52. http://www.w3.org/TR/WD-xml-names