<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE xep SYSTEM 'xep.dtd' [
  <!ENTITY % ents SYSTEM 'xep.ent'>
%ents;
]>
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<xep>
<header>
  <title>Mandatory-to-Implement Technologies for Jingle RTP Sessions</title>
  <abstract>This specification defines mandatory-to-implement technologies for Jingle RTP sessions, in particular codecs for voice and video chat.</abstract>
  &LEGALNOTICE;
  <number>xxxx</number>
  <status>ProtoXEP</status>
  <type>Standards Track</type>
  <sig>Standards</sig>
  <approver>Council</approver>
  <dependencies>
    <spec>XMPP Core</spec>
    <spec>XEP-0167</spec>
  </dependencies>
  <supersedes/>
  <supersededby/>
  <shortname>N/A</shortname>
  <discuss>jingle</discuss>
  &stpeter;
  <revision>
    <version>0.0.2</version>
    <date>2009-03-04</date>
    <initials>psa</initials>
    <remark><p>Added more information about video codecs.</p></remark>
  </revision>
  <revision>
    <version>0.0.1</version>
    <date>2009-03-04</date>
    <initials>psa</initials>
    <remark><p>First draft, copied from XEP-0167 with slight revisions and addition of requirements section.</p></remark>
  </revision>
</header>

<section1 topic='Introduction' anchor='intro'>
  <p>&xep0167; defines the &xep0166; signalling exchanges needed to establish voice and video chat using the Real-time Transport Protocol &rfc3550;; however, it does not specify the recommended voice and video codecs, since the state of codec technologies is more fluid than the signalling interactions. This specification defines the recommended codecs for the sake of interoperability between Jingle voice and video applications.</p>
</section1>

<section1 topic='Requirements' anchor='reqs'>
  <p>The following requirements apply to codec recommendations.</p>
  <ol>
    <li>The encoding quality of the codec MUST be acceptable for use among XMPP users.</li>
    <li>The codec specification MUST clearly define packetization of data for sending over the Realtime Transport Protocol (RTP).</li>
    <li>The codec SHOULD be widely used in Internet or other systems, thus enabling interoperability between Jingle applications and non-Jingle applications.</li>
    <li>The codec SHOULD NOT be patent-encumbered or, at the least, SHOULD be available under royalty-free licenses.</li>
  </ol>
</section1>

<section1 topic='Summary of Considered Codecs' anchor='summary'>
  <section2 topic='Audio' anchor='audio'>
    <section3 topic='Speex' anchor='audio-speex'>
      <p>The Speex codec is an open source / free software, patent-free, audio compression format for the encoding of human speech; it is developed and maintained by <link url='http://www.xiph.org/'>xiph.org</link>. The following table summarizes the available information about Speex.</p>
      <table caption='Requirements Conformance of the Speex Codec'>
        <tr>
          <th>Quality</th>
          <th>RTP Packetization</th>
          <th>Availability</th>
          <th>Patent Encumbrance</th>
        </tr>
        <tr>
          <td>Good quality; optimized for voice; can be used for wide-band audio.</td>
          <td>See &rtpspeex;.</td>
          <td>Widely available and freely downloadable under a revised BSD license at &lt;<link url='http://speex.org/'>http://speex.org/</link>&gt;.</td>
          <td>Designed to be patent-free.</td>
        </tr>
      </table>
    </section3>
    <section3 topic='G.711' anchor='audio-g711'>
      <p>G.711 refers to the Pulse Code Modulation (PCM) codec defined in &ITU; recommendation G.711, which is widely used on the public switched telephone network (PSTN) and by many voice over Internet Protocol (VoIP) providers. There are two versions: the &#956;-law ("U-law") version is widely deployed in North America and in Japan and the A-law version is widely deployed in the rest of the world. The following table summarizes the available information about G.711.</p>
      <table caption='Requirements Conformance of the G.711 Codec'>
        <tr>
          <th>Quality</th>
          <th>RTP Packetization</th>
          <th>Availability</th>
          <th>Patent Encumbrance</th>
        </tr>
        <tr>
          <td>Good quality; no wide-band mode.</td>
          <td>See &rfc5391;.</td>
          <td>Widely supported in PSTN and VoIP systems.</td>
          <td>Developed in 1972; patents have expired.</td>
        </tr>
      </table>
    </section3>
  </section2>
  <section2 topic='Video' anchor='video'>
    <section3 topic='Theora' anchor='audio-speex'>
      <p>The Theora codec is an open source / free software, patent-free, video compression format developed and maintained by <link url='http://www.xiph.org/'>xiph.org</link>. The following table summarizes the available information about Theora.</p>
      <table caption='Requirements Conformance of the Theora Codec'>
        <tr>
          <th>Quality</th>
          <th>RTP Packetization</th>
          <th>Availability</th>
          <th>Patent Encumbrance</th>
        </tr>
        <tr>
          <td>Unknown.</td>
          <td>See &rtptheora;.</td>
          <td>Widely available and freely downloadable under a revised BSD license at &lt;<link url='http://theora.org/'>http://theora.org/</link>&gt;.</td>
          <td>Designed to be patent-free.</td>
        </tr>
      </table>
    </section3>
    <section3 topic='H.264' anchor='audio-h264'>
      <p>H.264 is a technology for video compression jointly designed by the ITU and the &ISO;. The following table summarizes the available information about Theora.</p>
      <table caption='Requirements Conformance of the H.264 Codec'>
        <tr>
          <th>Quality</th>
          <th>RTP Packetization</th>
          <th>Availability</th>
          <th>Patent Encumbrance</th>
        </tr>
        <tr>
          <td>Unknown.</td>
          <td>See &rfc3984;.</td>
          <td>Unknown.</td>
          <td>Patented.</td>
        </tr>
      </table>
    </section3>
  </section2>
</section1>

<section1 topic='Security Considerations' anchor='security'>
  <p>For security considerations, refer to XEP-0167.</p>
</section1>

<section1 topic='IANA Considerations' anchor='iana'>
  <p>This document requires no interaction with &IANA;.</p>
</section1>

<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
  <p>This document requires no interaction with the &REGISTRAR;.</p>
</section1>

<section1 topic='Acknowledgements' anchor='ack'>
  <p>Thanks to Olivier Crête, Dave Cridland, Justin Karneges, Tobias Markmann, Jeff Muller, Arc Riley, Kevin Smith, Justin Uberti, and Paul Witty for their feedback.</p>
</section1>
</xep>
