<?xml version='1.0' ?>
<!DOCTYPE rfc SYSTEM 'rfcXXXX.dtd'>
<rfc ipr='full3667' docName='draft-hilt-sip-ext-neg-00'>

<?rfc toc='yes'?>
<?rfc compact='yes'?>
<?rfc sortrefs='yes'?>

<front>
  <title abbrev='MIME Extension Negotiation'>Media Type Extension
  Negotiation in the Session Initiation Protocol (SIP) Accept
  Header Field</title>
  <author initials='V' surname='Hilt' fullname='Volker Hilt'>
    <organization>Bell Labs/Lucent Technologies</organization>
    <address>
      <postal>
	<street>101 Crawfords Corner Rd</street>
	<city>Holmdel</city> <region>NJ</region>
	<code>07733</code>
	<country>USA</country>
      </postal> 
      <email>volkerh@bell-labs.com</email>
    </address>
  </author>
  <author initials='J' surname='Rosenberg' fullname='Jonathan Rosenberg'>
    <organization>Cisco Systems</organization>
    <address>
      <postal>
	<street>600 Lanidex Plaza</street>
	<city>Parsippany</city> <region>NJ</region>
	<code>07054</code>
	<country>USA</country>
      </postal> 
      <email>jdrosen@cisco.com</email>
    </address>
  </author>
  <author initials="G" surname="Camarillo" fullname="Gonzalo Camarillo">
    <organization>Ericsson</organization> 
    <address>
      <postal>
        <street>Hirsalantie 11</street>
	<code>02420</code> 
	<city>Jorvas</city> 
	<country>Finland</country>
      </postal>
      <email>Gonzalo.Camarillo@ericsson.com</email>
    </address>
  </author>
  <date month='January' year='2005' />
  <area>Transport</area>
  <workgroup>Session Initiation Protocol Working Group</workgroup>
  <keyword>SIP</keyword>
  <keyword>XML</keyword>
  <keyword>MIME</keyword>
  <keyword>Extension</keyword>
  <abstract>
    <t>This specification defines the profile parameter for the SIP
    Accept header field. This parameter is used to negotiate support
    for MIME media type extensions.</t>
  </abstract>
</front>

<middle>

  <section title="Introduction">
    
    <t>The Accept header field in the Session Initiation Protocol
    (SIP) <xref target="RFC3261"/> provides a mechanism for user
    agents to negotiate the media types they can accept in message
    bodies. With this mechanism, a user agent can announce the MIME
    media types it supports to another user agent.</t>

    <t>Many media types used in SIP message bodies are based on the
    Extensible Markup Language (XML) <xref
    target="W3C.REC-xml-20040204"/>. XML features a powerful extension
    mechanism that enables the use of multiple vocabularies in a
    single XML document. Components from different vocabularies can be
    uniquely identified using XML namespaces <xref
    target="W3C.REC-xml-names-19990114"/>.</t>

    <t>The extensibility of XML poses a problem for MIME media type
    based content negotiation. The negotiation only covers major media
    types and does not include language extensions and
    variations. For example, a user agent can indicate its support for
    the media type 'application/pidf+xml' (Presence Information Data
    Format) <xref target="RFC3863"/> but cannot indicate that it is
    also capable of handling the Location Object Extension to PIDF
    <xref target="I-D.ietf-geopriv-pidf-lo"/> and the location format
    GML 3.0 <xref target="OpenGIS"/>. </t>

    <t>The capability to negotiate support for a language extension or
    variation is in particular useful in the following cases:</t>

    <t><list style="numbers">
      <t>The interpretation of the content by the receiver depends on
      understanding the extension or language variation used.</t>
      <t>Different versions of the content can be made available
      depending on the extensions or language variations
      supported by the receiver. Unsupported extensions can be omitted
      by the sender to avoid, for example, transmission overhead or
      costs associated with gathering the information.</t>
    </list></t>

    <t>In this specification, we propose a new parameter for the
    Accept header field that enables the negotiation of extensions to
    MIME media types.</t>

    <t>The problem of negotiating support for language extensions and
    variations has been addressed for a number of specific MIME media 
    types. For example, <xref target="RFC3236"/> and <xref
    target="I-D.hoschka-smil-media-type"/> define a profile parameter
    for the MIME media types XHTML and SMIL respectively. However,
    these solutions are limited to a specific media type and require
    the registration of a new MIME parameter for each media type that
    is extended. An abstract framework for content negotiation has
    been defined in <xref target="RFC2703"/>.</t>

  </section>
 
  <section title="Terminology">
    <t>In this document, the key words "MUST", "MUST NOT", "REQUIRED",
    "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
    RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
    described in BCP 14, <xref target="RFC2119" /> and
    indicate requirement levels for compliant implementations.</t>
  </section>

  <section title="Profile Accept Header Field Parameter">

    <t>The profile parameter is a new parameter for the Accept header
    field. It MAY appear multiple times (including zero) in an Accept
    header field. The profile parameter contains a URI that identifies 
    an extension or a variation of the underlying MIME media
    type. Currently, the profile parameter is only defined for
    XML-based media types, which are registered with a '+xml'
    suffix. For these media types, the URI in the profile parameter
    identifies an XML namespace. This URI is identical to the URI that
    would be used in an XML document (e.g. in the XMLNS tag) to
    identify the same namespace.</t>

    <t>The syntax of the 'profile' Accept header field parameter
    is:</t>

    <figure>
<artwork><![CDATA[
profile-param = absoluteURI
 ]]></artwork>
    </figure>

    <t>This extends the existing definition of the Accept header field
    parameters in <xref target="RFC3261"/>, so that its BNF now looks
    like:</t>

    <figure>
<artwork><![CDATA[
accept-param   =  ("q" EQUAL qvalue) / profile-param / generic-param
 ]]></artwork>
    </figure>

    <t>Example: </t>
    <figure>
<artwork><![CDATA[
Accept: application/pidf+xml;
    profile=urn:ietf:params:xml:ns:pidf:geopriv10;
    profile=urn:opengis:specification:gml:schema-xsd:feature:v3.0
 ]]></artwork>
    </figure>

  </section>

  <section title="User Agent Behavior">

    <t>A user agent, which supports an extension or variation of a
    MIME media type, SHOULD list this extension or language variation
    in a profile parameter inserted into the Accept header field of
    the MIME media type. A user agent SHOULD identify all supported
    extensions and language variations. It SHOULD NOT list items
    (e.g. XML namespaces) that are by default part of the media 
    type.</t>

    <t>A user agent receiving an Accept header field with a profile
    parameter can assume that the sender supports the listed
    extensions and variations and MAY use them to create message
    bodies.</t> 

    <t><list style="empty">
      <t>Note: The absence of an extension in the profile parameter
      (or the absence of the profile parameter) does not mean the
      sender does not support that extension.</t>
    </list></t> 

  </section>

  <section title="Applicability to Other Protocols">

    <t>Although this extension has been developed for the SIP Accept
    header field, it is applicable to the Accept header field of other
    protocols such as HTTP.</t>

    <t><list style="empty">
      <t>Note: For this broader use, the profile parameter needs to be
      registered for the respective protocols or in the registry
      defined in <xref target="RFC3864"/>.</t>
    </list></t> 

  </section>

  <section anchor="sec:security" title="Security Considerations">
  
    <t>Security considerations for the Accept header field also apply
    here.</t>

  </section>

  <section anchor="sec:iana" title="IANA Considerations">
  
    <t>This document adds a parameter to the SIP header field
    parameter registry <xref target="RFC3968"/>:</t>

    <t>Header field in which the parameter can appear: Accept</t>

    <t>Name of the parameter: profile</t>

    <t>The parameter only accepts a set of predefined values: No</t>

    <t>Reference: this document</t>

  </section>

</middle>

<back>

<!--
<section title="Acknowledgements">

  <t>TBD.</t>

</section> 
-->

<references>

<reference anchor='RFC3236'>
<front>
<title>The 'application/xhtml+xml' Media Type</title>
<author initials='M.' surname='Baker' fullname='M. Baker'>
<organization /></author>
<author initials='P.' surname='Stark' fullname='P. Stark'>
<organization /></author>
<date year='2002' month='January' /></front>
<seriesInfo name='RFC' value='3236' />
<format type='TXT' octets='16750' target='ftp://ftp.isi.edu/in-notes/rfc3236.txt' />
</reference>


<reference anchor='RFC2119'>
<front>
<title abbrev='RFC Key Words'>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='Scott Bradner'>
<organization>Harvard University</organization>
<address>
<postal>
<street>1350 Mass. Ave.</street>
<street>Cambridge</street>
<street>MA 02138</street></postal>
<phone>- +1 617 495 3864</phone>
<email>sob@harvard.edu</email></address></author>
<date year='1997' month='March' />
<area>General</area>
<keyword>keyword</keyword>
<abstract>
<t>
   In many standards track documents several words are used to signify
   the requirements in the specification.  These words are often
   capitalized.  This document defines these words as they should be
   interpreted in IETF documents.  Authors who follow these guidelines
   should incorporate this phrase near the beginning of their document:
<list>
<t>
      The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL
      NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;,  &quot;MAY&quot;, and
      &quot;OPTIONAL&quot; in this document are to be interpreted as described in
      RFC 2119. 
</t></list></t>
<t>
   Note that the force of these words is modified by the requirement
   level of the document in which they are used.
</t></abstract></front>
<seriesInfo name='BCP' value='14' />
<seriesInfo name='RFC' value='2119' />
<format type='TXT' octets='4723' target='ftp://ftp.isi.edu/in-notes/rfc2119.txt' />
<format type='HTML' octets='14486' target='http://xml.resource.org/public/rfc/html/rfc2119.html' />
<format type='XML' octets='5661' target='http://xml.resource.org/public/rfc/xml/rfc2119.xml' />
</reference>


<reference anchor='RFC3667'>
<front>
<title>IETF Rights in Contributions</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'>
<organization /></author>
<date year='2004' month='February' /></front>
<seriesInfo name='BCP' value='78' />
<seriesInfo name='RFC' value='3667' />
<format type='TXT' octets='43297' target='ftp://ftp.isi.edu/in-notes/rfc3667.txt' />
</reference>


<reference anchor='RFC3968'>
<front>
<title>The Internet Assigned Number Authority (IANA) Header Field Parameter Registry for the Session Initiation Protocol (SIP)</title>
<author initials='G.' surname='Camarillo' fullname='G. Camarillo'>
<organization /></author>
<date year='2004' month='December' /></front>

<seriesInfo name='BCP' value='98' />
<seriesInfo name='RFC' value='3968' />
<format type='TXT' octets='20615' target='ftp://ftp.isi.edu/in-notes/rfc3968.txt' />
</reference>


<reference anchor='W3C.REC-xml-names-19990114'>
<front>
<title>Namespaces in XML</title>
<author initials='D' surname='Hollander' fullname='Dave Hollander'>
    <organization />
</author>
<author initials='T' surname='Bray' fullname='Tim Bray'>
    <organization />
</author>
<author initials='A' surname='Layman' fullname='Andrew Layman'>
    <organization />
</author>
<date month='January' day='14' year='1999' />
</front>
<seriesInfo name='W3C REC' value='REC-xml-names-19990114' />
<format type='HTML' target='http://www.w3.org/TR/1999/REC-xml-names-19990114' />
</reference>


<reference anchor='I-D.hoschka-smil-media-type'>
<front>
<title>The application/smil and application/smil+xml Media Types</title>
<author initials='P' surname='Hoschka' fullname='Philipp Hoschka'>
    <organization />
</author>
<date month='August' day='4' year='2004' />
<abstract><t>This document specifies the Media Type for version 1 and version 2 of the Synchronized Multimedia Integration Language (SMIL 1.0 and SMIL 2.0). SMIL allows ntegrating a set of independent multimedia objects into a synchronized multimedia presentation.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-hoschka-smil-media-type-12' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-hoschka-smil-media-type-12.txt' />
</reference>


<reference anchor='RFC2703'>
<front>
<title abbrev='Protocol-independent Content Negotiation'>Protocol-independent Content Negotiation Framework</title>
<author initials='G.' surname='Klyne' fullname='Graham Klyne'>
<organization>Content Technologies Ltd.</organization>
<address>
<postal>
<street>1220 Parkview</street>
<street>Arlington Business Park</street>
<city>Theale</city>
<region>Reading</region>
<code>RG7 4SA</code>
<country>UK</country></postal>
<phone>+44 118 9301300</phone>
<email>+44 118 9301301</email></address></author>
<date year='1999' month='September' />
<abstract>
<t>A number of Internet application protocols have a need to provide content negotiation for the resources with which they interact.  MIME media types,provide a standard method for handling one major axis of variation, but resources also vary in ways which cannot be expressed using currently available MIME headers.</t>
<t>This memo sets out terminology, an abstract framework and goals for protocol-independent content negotiation, and identifies some technical issues which may need to be addressed.</t>
<t>The abstract framework does not attempt to specify the content negotiation process, but gives an indication of the anticipated scope and form of any such specification.  The goals set out the desired properties of a content negotiation mechanism.</t></abstract></front>
<seriesInfo name='RFC' value='2703' />
<format type='TXT' octets='42071' target='ftp://ftp.isi.edu/in-notes/rfc2703.txt' />
</reference>


<reference anchor='RFC3864'>
<front>
<title>Registration Procedures for Message Header Fields</title>
<author initials='G.' surname='Klyne' fullname='G. Klyne'>
<organization /></author>
<author initials='M.' surname='Nottingham' fullname='M. Nottingham'>
<organization /></author>
<author initials='J.' surname='Mogul' fullname='J. Mogul'>
<organization /></author>
<date year='2004' month='September' /></front>
<seriesInfo name='BCP' value='90' />
<seriesInfo name='RFC' value='3864' />
<format type='TXT' octets='36231' target='ftp://ftp.isi.edu/in-notes/rfc3864.txt' />
</reference>


<reference anchor='OpenGIS'>
<front>
<title>Open Geography Markup Language (GML) Implementation
Specification</title>
<author><organization>OpenGIS</organization></author><
<date year='2003' month='January' /></front>
<seriesInfo name='OGC' value='02-023r4' />
<format type='PDF' target='https://portal.opengeospatial.org/files/?artifact_id=7174' />
</reference>


<reference anchor='I-D.ietf-geopriv-pidf-lo'>
<front>
<title>A Presence-based GEOPRIV Location Object Format</title>
<author initials='J' surname='Peterson' fullname='Jon Peterson'>
    <organization />
</author>
<date month='September' day='10' year='2004' />
<abstract><t>This document describes an object format for carrying geographical information on the Internet. This location object extends the Presence Information Data Format (PIDF), which was designed for communicating privacy-sensitive presence information and which has similar properties.</t></abstract>
</front>
<seriesInfo name='Internet-Draft' value='draft-ietf-geopriv-pidf-lo-03' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-geopriv-pidf-lo-03.txt' />
</reference>


<reference anchor='RFC3261'>
<front>
<title>SIP: Session Initiation Protocol</title>
<author initials='J.' surname='Rosenberg' fullname='J. Rosenberg'>
<organization /></author>
<author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'>
<organization /></author>
<author initials='G.' surname='Camarillo' fullname='G. Camarillo'>
<organization /></author>
<author initials='A.' surname='Johnston' fullname='A. Johnston'>
<organization /></author>
<author initials='J.' surname='Peterson' fullname='J. Peterson'>
<organization /></author>
<author initials='R.' surname='Sparks' fullname='R. Sparks'>
<organization /></author>
<author initials='M.' surname='Handley' fullname='M. Handley'>
<organization /></author>
<author initials='E.' surname='Schooler' fullname='E. Schooler'>
<organization /></author>
<date year='2002' month='June' />
<abstract>
<t>This document describes Session Initiation Protocol (SIP), an
application-layer control (signaling) protocol for creating,
modifying, and terminating sessions with one or more participants.
These sessions include Internet telephone calls, multimedia
distribution, and multimedia conferences.</t></abstract></front> 
<seriesInfo name='RFC' value='3261' />
<format type='TXT' octets='647976' target='ftp://ftp.isi.edu/in-notes/rfc3261.txt' />
</reference>


<reference anchor='RFC3863'>
<front>
<title>Presence Information Data Format (PIDF)</title>
<author initials='H' surname='Sugano' fullname='Hiroyasu Sugano'>
    <organization />
</author>
<author initials='S' surname='Fujimoto' fullname='Shingo Fujimoto'>
    <organization />
</author>
<author initials='G' surname='Klyne' fullname='Graham Klyne'>
    <organization />
</author>
<author initials='A' surname='Bateman' fullname='Adrian Bateman'>
    <organization />
</author>
<author initials='W' surname='Carr' fullname='Wayne Carr'>
    <organization />
</author>
<author initials='J' surname='Peterson' fullname='Jon Peterson'>
    <organization />
</author>
<date month='August' year='2004' />
<abstract><t>This memo specifies the Common Profile for Presence (CPP) Presence Information Data Format (PIDF) as a common presence data format for CPP-compliant Presence protocols, and also defines a new media type 'application/pidf+xml' to represent the XML MIME entity for PIDF</t></abstract>
</front>
<seriesInfo name='RFC' value='3863' />
<format type='TXT' target='ftp://ftp.isi.edu/in-notes/rfc3863.txt' />
</reference>


<reference anchor='W3C.REC-xml-20040204'>
<front>
<title>Extensible Markup Language (XML) 1.0 (Third Edition)</title>
<author initials='F' surname='Yergeau' fullname='François Yergeau'>
    <organization />
</author>
<author initials='J' surname='Paoli' fullname='Jean Paoli'>
    <organization />
</author>
<author initials='C' surname='Sperberg-McQueen' fullname='C. M. Sperberg-McQueen'>
    <organization />
</author>
<author initials='T' surname='Bray' fullname='Tim Bray'>
    <organization />
</author>
<author initials='E' surname='Maler' fullname='Eve Maler'>
    <organization />
</author>
<date month='February' day='4' year='2004' />
</front>
<seriesInfo name='W3C REC' value='REC-xml-20040204' />
<format type='HTML' target='http://www.w3.org/TR/2004/REC-xml-20040204' />
</reference>


</references>

</back>

</rfc>


 

