<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2326 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2326.xml">
<!ENTITY RFC2974 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2974.xml">
<!ENTITY RFC3264 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3264.xml">
<!ENTITY RFC3550 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3550.xml">
<!ENTITY RFC3551 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3551.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY RFC3558 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3558.xml">
<!ENTITY RFC6838 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6838.xml">
<!ENTITY RFC4393 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4393.xml">
<!ENTITY RFC4566 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4566.xml">
<!ENTITY RFC4788 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4788.xml">
<!ENTITY RFC4855 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4855.xml">
<!ENTITY RFC5188 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5188.xml">
<!ENTITY RFC6562 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6562.xml">
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="no"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc rfcedstyle="yes"?>

<rfc category="std" ipr="trust200902" number="6884" submissionType="IETF" consensus="yes">

  <front>
    <title abbrev="EVRC-NW RTP Payload Format">RTP Payload Format
    for&nbsp;the&nbsp;Enhanced&nbsp;Variable&nbsp;Rate&nbsp;Narrowband&nbhy;Wideband&nbsp;Codec&nbsp;(EVRC-NW)
    </title>

    <author fullname="Zheng Fang" initials="Z.F." surname="Fang">
      <organization>Qualcomm Incorporated</organization>
      <address>
        <postal>
          <street>5775 Morehouse Drive</street>
          <city>San Diego</city>
          <region>CA</region>
          <code>92126</code>
          <country>USA</country>
        </postal>

        <phone>+1 858 651 9484</phone>
        <email>zfang@qualcomm.com</email>
        <uri> http://www.qualcomm.com </uri>

      </address>
    </author>
    
    <date month="March" year="2013"/>

    <area>Applications</area>

    <workgroup>Network Working Group</workgroup>

    <keyword>RTP</keyword>
    <keyword>EVRC-NW</keyword>
    <keyword>EVRC-WB</keyword>
    <keyword>EVRC-B</keyword>

    <abstract>
      <t>
        This document specifies Real-time Transport Protocol (RTP) payload
        formats to be used for the Enhanced Variable Rate Narrowband-Wideband
        Codec (EVRC-NW). Three media type registrations are included for
        EVRC-NW RTP payload formats.  In addition, a file format is
        specified for transport of EVRC-NW speech data in storage mode
        applications such as email.
      </t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>   This document specifies the payload formats for packetization of
        EVRC-NW encoded speech signals into the Real-time Transport Protocol
        (RTP).  It defines support for the header-free, interleaved/bundled,
        and compact bundle packet formats for the EVRC-NW codec as well as
        discontinuous transmission (DTX) support for EVRC-NW encoded speech
        transported via RTP.  The EVRC-NW codec offers better speech quality
        than the EVRC and EVRC-B codecs and better capacity than the
        Enhanced Variable Rate Wideband Codec (EVRC-WB).
        EVRC-NW belongs to the EVRC family of codecs.
      </t>
    </section>
    <section title="Conventions">
        <t>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 <xref
        target="RFC2119">RFC 2119</xref>.</t>
    </section>
    <section title="Background">
      <t>
        EVRC-NW is an extension of both the EVRC-B <xref target="RFC4788" />
        and EVRC-WB <xref target="RFC5188" /> speech codecs developed in
        the Third Generation Partnership Project 2 (3GPP2) with
        support for DTX. It provides enhanced voice quality and high spectral
        efficiency.
      </t>
      <t>The EVRC-NW codec operates on 20 ms frames, and the default sampling
        rate is 16 kHz (wideband).  Input and output at the 8 kHz sampling
        rate (narrowband) is also
        supported.  The EVRC-NW codec can operate in eight modes (0 to 7) as
        defined in 3GPP2 C.S0014-D <xref target="SO73" />.  EVRC-NW modes 0, 1, and 7 are interoperable 
        with EVRC-WB. EVRC-NW modes 1 to 7 are interoperable with EVRC-B.
        EVRC-NW modes 0 to 6 use the full set or a subset of full
        rate, 1/2 rate, 1/4 rate, and 1/8 rate frames.  EVRC-NW mode 7
        uses only 1/2 rate and 1/8 rate frames. By default, EVRC-NW
        supports all narrowband modes (modes 1 to 7). The support of
        wideband mode (mode 0) is optional. Mode change among modes 1
        to 7 (or among modes 0 to 7 if the receiver supports wideband
        mode) results in codec output bit-rate change but does not cause any decoding
        problems at the receiver.  EVRC-NW
        provides a standardized solution for packetized voice applications
        that allow transitions between enhanced quality and increased capacity.
        The most important service addressed is IP telephony.  Target devices
        can be IP phones or VoIP handsets, media gateways, voice messaging
        servers, etc.
      </t>
    </section>

    <section title="EVRC-NW Codec" anchor="sec_codec_summary">
      <t>   The EVRC-NW codec operates on 20 ms frames.  It produces output 
        frames of one of the four different sizes: 171 bits (Rate 1), 80 bits (Rate 1/2), 40 bits (Rate 1/4), or 16
        bits (Rate 1/8).  In addition, there are two zero-bit codec frame types: blank
        (null) frames and erasure frames. The default sampling rate is 16
        kHz.  Input and output at the 8 kHz sampling rate is also supported.
      </t>
      <t>The frame type values and sizes of the associated codec data frames
        are listed in the table below:
      </t>
      <figure>
        <artwork> <![CDATA[
Value  Rate        Total codec data frame size in bytes (and in bits)
--------------------------------------------------------------------
  0    Blank (Null)   0    (0 bits)
  1    1/8            2    (16 bits)
  2    1/4            5    (40 bits)
  3    1/2           10    (80 bits)
  4    1             22    (171 bits; 5 bits padded at the end)
  5    Erasure        0    (SHOULD NOT be transmitted by sender)
]]></artwork></figure>
    </section>  

    <section title="RTP Header Usage">
      <t>
        The format of the RTP header is specified in RFC 3550 <xref target="RFC3550" />.  The
        EVRC-NW payload formats (Section 6) use the fields of the RTP header
        as specified in RFC 3550 <xref target="RFC3550" />.
      </t>
      <t>EVRC-NW also has the capability to operate with 8 kHz sampled input/output signals.  The decoder does not require a priori knowledge
        about the sampling rate of the original signal at the input of the
        encoder.  The decoder output can be at 8 kHz or 16 kHz regardless of
        the sampling rate used at the encoder.  Therefore, depending on the
        implementation and the electroacoustic audio capabilities of the
        devices, the input of the encoder and/or the output of the decoder
        can be configured at 8 kHz; however, a 16 kHz RTP clock rate MUST
        always be used.  The RTP timestamp is increased by 320 for each
        20&nbsp;milliseconds.
      </t>
      <t>
        The RTP header marker bit (M) SHALL be set to 1 if the first frame
        carried in the packet contains a speech frame that is the first in a
        talkspurt.  For all other packets, the marker bit SHALL be set to zero
        (M=0).
      </t>
    </section>

    <section anchor="Payload_format" title="Payload Format">
      <t> Three RTP packet formats are supported for the EVRC-NW codec -- the
        interleaved/bundled packet format, the header-free packet format, and
        the compact bundled packet format.  For all these formats, the
        operational details and capabilities of EVRC-NW, such as TOC,
        interleaving, DTX, and bundling, are exactly the same as those defined
        in EVRC <xref target="RFC3558" />, EVRC-B <xref target="RFC4788" />,
        and EVRC-WB <xref target="RFC5188"/>, except that 
        <list style="numbers">

          <t>
            the mode change request
            field in the interleaved/bundled packet format MUST be
            interpreted according to the definition of the RATE_REDUC
            parameter as described for EVRC-NW in 3GPP2 C.S0014-D <xref target="SO73"/>.
          </t>
          <t> 
            the mode change request field in the interleaved/bundled packet format
            SHOULD be honored by an EVRC-NW encoding endpoint in a one-to-one
            session with a dedicated EVRC-NW decoding endpoint, such as in a
            two-party call or in a conference leg.
          </t>
          <t>
            the reserved bit field in the first octet of the
            interleaved/bundled format has only one bit. Bit 1 of the
            first octet is an EVRC-NW wideband/narrowband encoding
            capability identification flag. 
          </t>
        </list>
        The media type audio/EVRCNW maps to the interleaved/bundled
        packet format, audio/EVRCNW0 maps to the header-free packet
        format, and audio/EVRCNW1 maps to the compact bundled packet format.
      </t>
        <section title="Encoding Capability Identification in EVRC-NW
        Interleaved/Bundled Format">
          <t>
            The EVRC-NW interleaved/bundled format defines an encoding capability
     identification flag, which is used to signal the local EVRC-NW
     wideband/narrowband encoding capability at the time of construction of an RTP packet to the far end of a communication session.  This capability identification flag allows
            the far end to use the MMM field in its outgoing
            (returning) EVRC-NW interleaved/bundled format packets to
            request the desired EVRC-NW wideband or narrowband
            encoding mode in accordance with the dynamic/instantaneous
            encoding capability information. See RFC 3558 <xref
target="RFC3558" /> for the definition of the MMM field. The following examples
            illustrate a few scenarios where the encoding capability
            information is used: 
          </t>
          <t><list style="symbols">
              <t>An end-to-end wideband communication is established
              first between two communication endpoints using the EVRC-NW
              interleaved/bundled format.  The called endpoint
              becomes wideband encoding incapable during the call and
              makes the other end aware of this change by using the
              encoding capability identification flag.  Based on the
              new information, the calling endpoint could change the
              MMM value in its outgoing EVRC-NW packets from mode 0 to
              mode 4 to request narrowband encoded traffic for
              bandwidth efficiency or from mode 0 to mode 1 for best
              perceptual quality. 
              </t>
              <t> An end-to-end narrowband communication is
              established between a calling endpoint that is EVRC-NW wideband encoding capable
              and a called endpoint that is EVRC-NW wideband encoding
              incapable.  The called endpoint
              becomes EVRC-NW wideband encoding capable during the
              call and makes the other end aware of this change using
              the encoding capability identification flag.  Based on
              the new information, the calling endpoint could change
              the MMM value in its outgoing EVRC-NW packets from
              non-mode-0 to mode 0 to request wideband traffic. 
              </t>
          </list></t>
          <t>The EVRC-NW interleaved/bundled format defines the encoding
          capability identification flag in bit 1 of the first octet,
          as illustrated in the figure below.  The flag shall be set
          to zero (C=0) when the local EVRC-NW encoder is capable of
          mode 0 wideband encoding.  The flag shall be set to one
          (C=1) when the local EVRC-NW encoder is capable of
          non-mode-0 narrowband encoding only.  See RFC 3558 <xref
          target="RFC3558" /> for original definitions of other fields in the
          interleaved/bundled format. 
          </t>
          <figure>
            <artwork> <![CDATA[
  0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                        RTP Header                             |
 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
 |R|C| LLL | NNN | MMM |  Count  |  TOC  |  ...  |  TOC  |padding|
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |        one or more codec data frames, one per TOC entry       |
 |                             ....                              |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         ]]> </artwork> </figure>
          <t>Reserved (R): 1 bit
            <list>
              <t>
                Reserved bit.  MUST be set to zero by sender; SHOULD
                be ignored by receiver.
              </t>
            </list>
          </t>
          <t>
            Encoding capability identification (C): 1 bit
            <list>
              <t>
              Must be set to zero by sender to indicate wideband
              encoding capable or set to one to indicate narrowband
              encoding capable only. 

                <list style="hanging">
                  <t hangText="C = 0 :">
                    mode 0 wideband encoding capable
                  </t>
                  <t hangText="  = 1 :">  
                    mode 0 wideband encoding incapable, i.e., narrowband
                    encoding only.
                  </t>
                </list>
              </t>
            </list>
          </t>
        </section> 
    </section>


    <section title="Congestion Control Considerations">
            <t>
          Congestion control for RTP is discussed in RFC 3550 <xref
     target="RFC3550"/> and in applicable RTP profiles, e.g., RFC3551 <xref
     target="RFC3551"/>. This document does not change those considerations.
          </t>
      <t>
        Due to the header overhead, the number of frames encapsulated in each
        RTP packet influences the overall bandwidth of the RTP stream.
        Packing more frames in each RTP packet can reduce the number of
        packets sent and hence the header overhead, at the expense of
        increased delay and reduced error robustness.
      </t>
    </section>

    <section title="Storage Format for the EVRC-NW Codec" anchor="sec_storage_format">
      <t>    The storage format is used for storing EVRC-NW encoded speech frames,
        e.g., as a file or email attachment.</t>

      <t>   The file begins with a magic number to identify the vocoder that is
        used.  The magic number for EVRC-NW corresponds to the ASCII
        character string "#!EVRCNW\n", i.e., "0x23 0x21 0x45 0x56 0x52 0x43
        0x4E 0x57 0x0A".
      </t>
      <t>
        The codec data frames are stored in consecutive order, with a single
        TOC entry field, extended to one octet, prefixing each codec data
        frame.  The TOC field is extended to one octet by setting the four
        most significant bits of the octet to zero.  For example, a TOC value
        of 4 (a full-rate frame) is stored as 0x04.  The Value column in the table in
        <xref target="sec_codec_summary" /> provides the TOC values for corresponding frame types.
      </t>
      <t>
        Speech frames lost in transmission and non-received frames MUST be
        stored as erasure frames (TOC value of 5) to maintain synchronization
        with the original media.
      </t>
    </section>

    <section title="IANA Considerations">
      <t>  This document introduces a new EVRC-NW 'audio' media
      subtype. </t>
      <section title="Media Type Registrations">
        <t> Following the guidelines in RFC 4855
          <xref target="RFC4855"/> and RFC 6838 <xref target="RFC6838"/>, this
          section registers new 'audio' media subtypes for EVRC-NW. 
        </t>

        <section title="Registration of Media Type audio/EVRCNW">
          <t> Type name: audio </t>
          <t> Subtype name: EVRCNW </t>
          <t> Required parameters: None </t>

          <t>
          <list style="hanging">
          <t hangText="Optional parameters:">These parameters apply to RTP
          transfer only.


             <list style="hanging">
             <t hangText="mode-set-recv:">A subset of EVRC-NW modes.
             Possible values are a comma-separated list of modes from
             the set {0,1,2,3,4,5,6,7} (see Table 2.6.1.2-1 in 3GPP2
             C.S0014-D <xref target="SO73" />). A decoder can use this
             attribute to inform an encoder of its preference to
             operate in a specified subset of modes.  Absence of this
             parameter signals the mode set {1,2,3,4,5,6,7}.
  </t>

          <t hangText="ptime:">See RFC 4566 <xref target="RFC4566" />. </t>

          <t hangText="maxptime:">See RFC 4566. </t>

          <t hangText="maxinterleave:">Maximum number for interleaving length
          (field LLL in the Interleaving Octet) [0..7].  The interleaving
          lengths used in the
          entire session MUST NOT exceed this maximum value.  If not signaled,
          the maxinterleave length MUST be 5.
          </t>
          <t hangText="silencesupp:">See Section 6.1 in RFC 4788. </t>
          <t hangText="dtxmax:">See Section 6.1 in RFC 4788. </t>
          <t hangText="dtxmin:">See Section 6.1 in RFC 4788. </t>
          <t hangText="hangover:">See Section 6.1 in RFC 4788. </t>

            </list></t>
          </list></t>

          <t><list style="hanging">
          <t hangText="Encoding considerations:"><vspace/>This media type is framed
          binary data (see RFC 6838, Section 4.8) and
          is defined for transfer of EVRC-NW encoded data via RTP using the
          interleaved/bundled packet format specified in RFC 3558
          <xref target="RFC3558" />.</t>

          <t hangText="Security considerations:">See <xref
          target="sec_security" />.</t>

          <t hangText="Interoperability considerations:">None</t>

          <t hangText="Published specification:"><vspace/>
            The EVRC-NW vocoder is specified in 3GPP2 C.S0014-D <xref target="SO73" />.  The transfer
            method with the interleaved/bundled packet format via RTP is
            specified in RFC 3558 <xref target="RFC3558" />. See
            <xref target="Payload_format" /> of RFC 6884 for details for
            EVRC-NW.</t>

          <t hangText="Applications that use this media type:"><vspace/>It is
            expected that many VoIP applications (as well as mobile
            applications) will use this type.</t>
         </list></t>

          <t>Additional information:</t>

          <t><list>
          <t>The following applies to stored-file transfer
          methods: 

           <list>
           <t>
            Magic number: #!EVRCNW\n (see <xref target="sec_storage_format" />)
           </t>
           <t> File extensions: enw, ENW </t>
           <t> Macintosh file type code: None </t>
           <t> Object identifier or OID: None </t>
           </list></t>
         </list></t>

          <t>
            EVRC-NW speech frames may also be stored in the file format "3g2"
            as defined in 3GPP2 C.S0050-B <xref target="S0050B" />, which is identified using the media
            types "audio/3gpp2" or "video/3gpp2" registered by RFC 4393
            <xref target="RFC4393" />.
          </t>

          <t><list style="hanging">
          <t hangText="Person &amp; email address to contact for further
          information:"><vspace/>Zheng Fang &lt;zfang@qualcomm.com&gt;</t>

          <t hangText="Intended usage:">COMMON</t>

          <t hangText="Restrictions on usage:"><vspace/>This media type can be
          used with the file format defined in <xref
          target="sec_storage_format" /> of RFC 6884 in contexts other
          than RTP. In the context of transfers over RTP, the RTP
          payload format specified in Section&nbsp;4.1 of RFC 3558 <xref
          target="RFC3558" /> is used for this media type.</t>

           <t hangText="Author:">Zheng Fang &lt;zfang@qualcomm.com&gt;</t>

           <t hangText="Change controller:"><vspace/>IETF Payload working group
           delegated from the IESG.</t>
         </list></t>

        </section>
        
        <section title="Registration of Media Type audio/EVRCNW0">
          <t> Type name: audio </t>
          <t> Subtype name: EVRCNW0 </t>
          <t> Required parameters: None </t>

          <t><list style="hanging">
          <t hangText="Optional parameters:">These parameters apply to
          RTP transfer only.

          <list style="hanging">
            <t hangText="mode-set-recv:">A subset of EVRC-NW modes.
            Possible values are a comma-separated list of modes from
            the set {0,1,2,3,4,5,6,7} (see Table 2.6.1.2-1 in 3GPP2
            C.S0014-D <xref target="SO73" />).  A decoder can use this attribute to inform an
            encoder of its preference to operate in a specified subset
            of modes.  Absence of this parameter signals the mode set
            {1,2,3,4,5,6,7}.</t>

          <t hangText="ptime:">See RFC 4566.</t>
          <t hangText="silencesupp:">See Section 6.1 in RFC 4788.</t>
          <t hangText="dtxmax:">See Section 6.1 in RFC 4788.</t>
          <t hangText="dtxmin:">See Section 6.1 in RFC 4788.</t>
          <t hangText="hangover:">See Section 6.1 in RFC 4788.</t>

            </list></t>
          </list></t>

          <t><list style="hanging">
          <t hangText="Encoding considerations:"><vspace/>This media type
           is framed binary data (see RFC 6838, Section 4.8) and
           is defined for transfer of EVRC-NW encoded data via RTP using the
           header-free packet format specified in RFC 3558 <xref
           target="RFC3558" />.</t>

          <t hangText="Security considerations:">
          See <xref target="sec_security" />. </t>
          <t hangText="Interoperability considerations:">None </t>
          <t hangText="Published specification:"><vspace/>
           The EVRC-NW vocoder is specified in 3GPP2 C.S0014-D <xref target="SO73" />.  The transfer
           method with the header-free packet format via RTP is
           specified in RFC 3558 <xref target="RFC3558" />.</t>
          <t hangText="Applications that use this media type:"><vspace/>
          It is expected that many VoIP applications (as well as mobile
          applications) will use this type.</t>
        </list></t>

          <t> Additional information: None </t>

          <t><list style="hanging">
          <t hangText="Person &amp; email address to contact for further
          information:"><vspace/>Zheng Fang &lt;zfang@qualcomm.com&gt;</t>

          <t hangText="Intended usage:">COMMON</t>

          <t hangText="Restrictions on usage:"><vspace/>This media type
          depends on RTP framing and hence is only defined for transfer
          via RTP <xref target="RFC3550" />. The RTP payload format specified
          in Section 4.2 of RFC 3558 <xref target="RFC3558" /> SHALL be used.
          This media type SHALL NOT be used for storage or file transfer;
          instead, audio/EVRCNW SHALL be used.</t>

          <t hangText="Author:">Zheng Fang &lt;zfang@qualcomm.com&gt;</t>

          <t hangText="Change controller:"><vspace/>IETF Payload working group
          delegated from the IESG.</t>
        </list></t>
        </section>

        <section title="Registration of Media Type audio/EVRCNW1">
          <t> Type name: audio </t>
          <t> Subtype name: EVRCNW1 </t>
          <t> Required parameters: None </t>

          <t>
          <list style="hanging">
          <t hangText="Optional parameters:">These parameters apply to RTP
          transfer only.

           <list style="hanging">
           <t hangText="mode-set-recv:">A subset of EVRC-NW modes.  Possible
           values are a
           comma-separated list of modes from the set {0,1} (see Table
           2.6.1.2-1 in 3GPP2 C.S0014-D <xref target="SO73" />).  A decoder can use this attribute to
           inform an encoder of its preference to operate in a specified subset
           of modes.  A value of 0 signals support for wideband fixed rate
           (full or half rate, depending on the value of the 'fixedrate' parameter).
            A value of 1 signals narrowband fixed rate (full or half
            rate, depending on the value of the 'fixedrate' parameter).
            Absence of this parameter signals mode 1.</t>

          <t hangText="ptime:">See RFC 4566.</t>
          <t hangText="maxptime:">See RFC 4566.</t>
          <t hangText="fixedrate:">Indicates the EVRC-NW rate of the session
          while in single
          rate operation.  Valid values include 0.5 and 1, where a value of
          0.5 indicates the 1/2 rate while a value of 1 indicates the full
          rate. If this parameter is not present, 1/2 rate is assumed.</t>
          <t hangText="silencesupp:">See Section 6.1 in RFC 4788.</t>
          <t hangText="dtxmax:">See Section 6.1 in RFC 4788.</t>
          <t hangText="dtxmin:">See Section 6.1 in RFC 4788.</t>
          <t hangText="hangover:">See Section 6.1 in RFC 4788.</t>

            </list></t>
          </list></t>

          <t><list style="hanging">
          <t hangText="Encoding considerations:"><vspace/>This media type is
          framed binary data (see RFC 6838, Section 4.8) and
          is defined for transfer of EVRC-NW encoded data via RTP using the
          compact bundled packet format specified in RFC 4788.</t>

          <t hangText="Security considerations:">See <xref
          target="sec_security" />.</t>

          <t hangText="Interoperability considerations:">None </t>
          <t hangText="Published specification:"><vspace/>
          The EVRC-NW vocoder is specified in 3GPP2 C.S0014-D <xref target="SO73" />.  The transfer
          method with the compact bundled packet format via RTP is
          specified in RFC 4788.</t>

          <t hangText="Applications that use this media type:"><vspace/>
          It is expected that many VoIP applications (as well as mobile
          applications) will use this type. </t>
       </list></t>

          <t> Additional information: None </t>

          <t><list style="hanging">
          <t hangText="Person &amp; email address to contact for further
          information:"><vspace/>Zheng Fang &lt;zfang@qualcomm.com&gt;</t>

          <t hangText="Intended usage:">COMMON </t>
          <t hangText="Restrictions on usage:"><vspace/>
          This media type depends on RTP framing and hence is only defined
          for transfer via RTP <xref target="RFC3550" />. The RTP payload
          format specified in Section 4 of  RFC 4788 SHALL be used.  This media
          type SHALL NOT be used for storage or file transfer; instead,
          audio/EVRCNW SHALL be used.</t>

          <t hangText="Author:">Zheng Fang &lt;zfang@qualcomm.com&gt;</t>

          <t hangText="Change controller:"><vspace/>
          IETF Payload working group delegated from the IESG.</t>
        </list></t>
        </section>
      </section>
    </section>

    <section title="SDP Mode Attributes for EVRC-NW">
      <t>     'mode-set-recv' can be used by a decoder to inform an
        encoder of its preference to operate in a specified subset of 
        modes.  Note that indicating a preference implicitly
        indicates support for that capability. If mode 0
        is not preferred for media type EVRCNW0 or EVRCNW1, then there
        is no indication that mode 0 is supported. However, absence of
        this parameter or absence of mode 0 in this parameter for
        media type EVRCNW shall not preclude mode 0 support during a
        call where mode 0 may be requested via the MMM field. 
        
		<list style="numbers">
          <t>To inform other nodes of its capability for wideband mode support: a decoder
          can always decode all the narrowband modes (modes 1 to
          7).
 Unless the decoder indicates support of mode 0
          (i.e., preference) in this parameter or in the MMM mode
          request field in the interleaved/bundled payload format, an
          encoder at the other side shall not operate in mode 0. 
          </t>
          <t>To indicate a preference to operate in a subset of modes: 
          a set has been defined so that several modes can be
          expressed as a preference in one attempt. For instance, the
          set {4,5,6,7} signals that the receiver prefers that the sender
          operate in bandwidth-efficient narrowband modes of
          EVRC-NW. </t>
		</list>
        </t> 
      <t>
        Note that during an active call session using the interleaved/bundled
        packet format, the MMM mode request received from a communication
        partner can contain a mode request different than the values
        in the last mode-set-recv attribute. The partner's EVRC-NW
        wideband decoding capability is determined by the latest
        mode-set-recv attribute or MMM mode request field. For
        example, a mode request with MMM=0 from a communication
        partner is an implicit indication of the partner's EVRC-NW
        wideband decoding capability and preference.  An EVRC-NW
        wideband-capable node receiving the request can operate in
        wideband mode.  A mode request with MMM=1, 2, ..., or 7 from a
        communication partner is an implicit indication of the
        partner's EVRC-NW narrowband decoding preference.  The encoder
        of an EVRC-NW node receiving the request shall honor the request and
        operate in narrowband mode.
      </t>

      <t>'sendmode' is used as a Session Description Protocol (SDP)
        mode attribute in
        EVRC <xref target="RFC3558"/>, EVRC-B <xref target="RFC4788"/>, and
        EVRC-WB <xref target="RFC5188"/>. However, it is deprecated in
        EVRC-NW. 
      </t>
    </section>

    <section title="Mode Change Request/Response Considerations">
      <t>
        The interleaved/bundled packet format for the EVRC family of
        vocoders supports a 3-bit field (MMM) that a communication
        node can use to indicate its preferred compression mode to an
        opposite node. The concept of the compression mode (also known
        as Capacity Operating Point) was introduced to allow a
        controlled trade-off between voice quality and channel
        capacity. The notion makes it possible to exercise vocoders at
        the highest possible (average) bit-rate (hence, highest voice
        quality) when the network is lightly loaded. Conversely, once
        the network load increases, the vocoders can be requested to
        operate at lower average bit-rates so as to absorb the
        additional network load without causing an undue increase in
        the frame-erasure rates; the underlying premise is that while
        a higher bit-rate improves vocoder performance, it also
        increases the network load, risking a sharp decline in
        voice quality should the frame-erasure rate be too high. By
        contrast, a lower bit-rate mode of operation can result in
        accommodation of the additional network load without causing
        unduly high frame-erasure rates, resulting in better overall
        quality despite the inherently lower voice quality of the
        lower bit-rate mode of the vocoder. 
      </t>
      <t>
        Accordingly, the MMM field should be used to request the
        far end to transmit compressed speech using a mode that
        provides the best balance between voice quality and
        capacity. However, in the case of mobile-mobile calls, for
        example, there are two wireless sides involved, each with a
        potentially different network load level and hence a different
        preferred mode. In such cases, achieving optimal end-to-end
        performance depends on coherent management of the operative
        mode by the two sides. This requires that even if the local
        node prefers a higher bit-rate vocoder mode, it should adjust
        to a lower bit-rate mode if requested by the far end, in order
        to avoid potentially high frame-erasure rates due to heavy
        load at the far-end network. For similar reasons, in cases
        where a mode requested by the far end should not be supported,
        it might still be beneficial to consider switching to a
        supported vocoder mode corresponding to a lower average
        bit-rate than requested. It is recommended that the next lower
        average bit-rate supported vocoder mode be used for encoding
        when a mode requested by the far end is not supported.
      </t>
      <t>
        A wideband-capable endpoint can use the information conveyed
        by the C-bit of the RTP payload header to determine the
        optimal mode to request of the far end. If the far end cannot
        provide mode 0 packets (C-bit=1), then the choice of MMM can be
        based strictly on the local network load. If the C-bit
        indicates the remote end's mode 0 encoding capability (C-bit=0),
        then even if the local network load is not light, mode 0 can be
        requested knowing definitively that it will be supported. This
        will permit operators to treat wideband-capable mobiles
        preferentially, should they wish to adopt such policy.
      </t>
</section>


    <section title="Mapping EVRC-NW Media Type Parameters into SDP">
      <t>Information carried in the media type specification has a specific
        mapping to fields in the Session Description Protocol (SDP)
        <xref target="RFC4566" />, which is commonly used to describe RTP
        sessions.  When SDP is used to specify sessions employing EVRC-NW
        encoded speech, the mapping is as follows.</t>
      <t><list style="symbols">
        <t>The media type ("audio") goes in SDP "m=" as the media name.</t>
        <t>The media subtype ("EVRCNW", "EVRCNW0", or "EVRCNW1") goes in SDP
          "a=rtpmap" as the encoding name.</t>
        <t>The optional parameters 'ptime and 'maxptime' (for subtypes
          EVRCNW and EVRCNW1) go in the SDP "a=ptime" and "a=maxptime"
          attributes, respectively.</t>
        <t>Any remaining parameters (for subtypes EVRCNW, EVRCNW0, and
          EVRCNW1) go in the SDP "a=fmtp" attribute by copying them from the
          media type string as a semicolon-separated list of parameter=value
          pairs. </t>
      </list></t>
    </section>

    <section title="Offer-Answer Model Considerations for EVRC-NW">
      <t>   The following considerations apply when using the SDP offer-answer
   procedures of RFC 3264 <xref target="RFC3264" /> to negotiate the
   use of EVRC-NW payload in RTP:</t>
      <t><list style="symbols">
          <t>Since EVRC-NW is an extension of both EVRC-B and EVRC-WB, the offerer SHOULD also
          announce EVRC-B and EVRC-WB support in its "m=audio" lines, with EVRC-NW as the
          preferred codec.  This will allow interoperability with an
          answerer that supports only EVRC-B and/or EVRC-WB.</t>
        </list>
      </t>
      <t> Below is an example of such an offer: </t>
      <figure>
      <artwork> <![CDATA[
       m=audio 55954 RTP/AVP 98 99 100
       a=rtpmap:98 EVRCNW0/16000
       a=rtpmap:99 EVRCWB0/16000
       a=rtpmap:100 EVRCB0/8000
       a=fmtp:98 mode-set-recv=0,1,2,3,4,5,6
       a=fmtp:99 mode-set-recv=0,4
       a=fmtp:100 recvmode=0
         ]]> </artwork> </figure>
      <t> If the answerer supports EVRC-NW, then the answerer can keep the
        payload type 98 in its answer and the conversation can be done
        using EVRC-NW.  Otherwise, if the answerer supports only EVRC-WB and/or EVRC-B, then
        the answerer will leave only the payload type 99 and/or 100,
        respectively, in its answer and the conversation will be done
        using EVRC-WB and/or EVRC-B, respectively.
      </t>
      <t> An example answer for the above offer: </t>
      <figure>
      <artwork> <![CDATA[        
       m=audio 55954 RTP/AVP 98
       a=rtpmap:98 EVRCNW0/16000
       a=fmtp:98 mode-set-recv=4
]]> </artwork> </figure>
      <t> <list style="symbols">
          <t>  'mode-set-recv' is a unidirectional receive-only parameter.</t>

          <t>  An offerer can use 'mode-set-recv' to request that the remote
            sender's encoder be limited to the list of modes signaled in
            'mode-set-recv'.  A remote sender MAY ignore 'mode-set-recv'
            requests. However, a remote sender shall not assume the
            other side can support mode 0, unless the offer includes
            mode 0 explicitly in 'mode-set-recv' or the remote sender
            receives mode requests with MMM=0 from the communication
            partner during an active call using the EVRC-NW
            interleaved/bundled format.
          </t> 
          <t>The parameters 'maxptime' and 'ptime' will in most cases not
            affect interoperability; however, the setting of the parameters can
            affect the performance of the application.  The SDP offer-answer
            handling of the 'ptime' parameter is described in RFC 3264 <xref target="RFC3264"/>.
            The 'maxptime' parameter MUST be handled in the same way.</t>
          <t>For a sendonly stream, the 'mode-set-recv' parameter is not useful
            and SHOULD NOT be used. </t>

          <t>When using EVRCNW1, the entire session MUST use the same fixed
            rate and mode (0-Wideband or 1-Narrowband). </t>
          <t>For additional rules that MUST be followed while negotiating DTX
            parameters, see Section 6.8 in RFC 4788 <xref target="RFC4788"/>.</t>
          <t>  Any unknown parameter in an SDP offer MUST be ignored by the
            receiver and MUST NOT be included in the SDP answer.</t>
      </list></t>
    </section>

    <section title="Declarative SDP Considerations">
      <t>For declarative use of SDP in the Session Announcement Protocol
       (SAP) <xref target="RFC2974"/> and the Real Time Streaming Protocol
       (RTSP) <xref target="RFC2326" />, the following
        considerations apply:</t>

      <t> <list style="symbols">
          <t> Any 'maxptime' and 'ptime' values should be selected with care to
            ensure that the session's participants can achieve reasonable
            performance. </t>
          <t>  The payload format configuration parameters are all declarative,
            and a participant MUST use the configuration(s) that is provided
            for the session.  More than one configuration MAY be provided if
            necessary by declaring multiple RTP payload types; however, the
            number of types SHOULD be kept small.  For declarative examples,
            see <xref target="sec_sdp_examples" />. </t>
          <t> The usage of unidirectional receive-only parameters,
          such as 'mode-set-recv', should be excluded in any
          declarations, since these parameters are meaningless in
          one-way streaming applications. </t>
        </list>
      </t>
    </section>

    <section title="Examples" anchor="sec_sdp_examples">
      <t>    Some example SDP session descriptions utilizing EVRC-NW
   encodings follow.  In these examples, long a=fmtp lines are folded to
   meet the column width constraints of this document.  The backslash
   ("\") at the end of a line and the carriage return that follows it
   should be ignored.  Note that media subtype names are case-insensitive.  Parameter names are case-insensitive both in media
   types and in the mapping to the SDP a=fmtp attribute.</t>
      <t> Example usage of EVRCNW if wideband mode is supported: </t>
      <figure><artwork> <![CDATA[        
       m=audio 49120 RTP/AVP 97 98 99
       a=rtpmap:97 EVRCNW/16000
       a=rtpmap:98 EVRCWB/16000
       a=rtpmap:99 EVRCB/8000
       a=fmtp:97 mode-set-recv=0,1,2,3,4,5,6
       a=fmtp:98 mode-set-recv=0,4
       a=fmtp:99 recvmode=0
       a=maxptime:120
]]></artwork></figure>
   
      <t> Example usage of EVRCNW if wideband mode is not supported: </t>
      <figure><artwork> <![CDATA[        
       m=audio 49120 RTP/AVP 97 98 99
       a=rtpmap:97 EVRCNW/16000
       a=rtpmap:98 EVRCWB/16000
       a=rtpmap:99 EVRCB/8000
       a=fmtp:97 mode-set-recv=1,2,3,4,5,6
       a=fmtp:98 mode-set-recv=4
       a=fmtp:99 recvmode=0
       a=maxptime:120
]]></artwork></figure>
   
      <t> Example usage of EVRCNW0: </t>
      <figure><artwork> <![CDATA[        
       m=audio 49120 RTP/AVP 97 98 99
       a=rtpmap:97 EVRCNW0/16000
       a=rtpmap:98 EVRCWB0/16000
       a=rtpmap:99 EVRCB0/8000
       a=fmtp:97 mode-set-recv=0,1,2,3,4,5,6
       a=fmtp:98 mode-set-recv=0,4
       a=fmtp:99 recvmode=0
]]></artwork></figure>

      <t>      Example SDP answer from a media gateway requesting a terminal to
     limit its encoder operation to EVRC-NW mode 4. </t>
      <figure><artwork> <![CDATA[        
       m=audio 49120 RTP/AVP 97
       a=rtpmap:97 EVRCNW0/16000
       a=fmtp:97 mode-set-recv=4
]]></artwork></figure>

      <t> Example usage of EVRCNW1: </t>
      <figure><artwork> <![CDATA[        
       m=audio 49120 RTP/AVP 97 98 99
       a=rtpmap:97 EVRCNW1/16000
       a=rtpmap:98 EVRCWB1/16000
       a=rtpmap:99 EVRCB1/8000
       a=fmtp:97 fixedrate=0.5
       a=fmtp:98 fixedrate=0.5
       a=fmtp:99 fixedrate=0.5
       a=maxptime:100
]]></artwork></figure>

      <t> Example usage of EVRCNW with DTX with silencesupp=1: </t> 
      <figure><artwork> <![CDATA[        
       m=audio 49120 RTP/AVP 97 98 99
       a=rtpmap:97 EVRCNW/16000
       a=rtpmap:98 EVRCWB/16000
       a=rtpmap:99 EVRCB/8000
       a=fmtp:97 silencesupp=1;dtxmax=32;dtxmin=12;hangover=1; \
       mode-set-recv=0,1,2,3,4,5,6
       a=fmtp:98 silencesupp=1;dtxmax=32;dtxmin=12;hangover=1; \
       mode-set-recv=0,4
       a=fmtp:99 recvmode=0
       a=maxptime:120
]]></artwork></figure>

      <t>      Example usage of EVRCNW with DTX with silencesupp=0: </t> 
      <figure><artwork> <![CDATA[        
       m=audio 49120 RTP/AVP 97 98 99
       a=rtpmap:97 EVRCNW/16000
       a=rtpmap:98 EVRCWB/16000
       a=rtpmap:99 EVRCB/8000
       a=fmtp:97 silencesupp=0;dtxmax=32;dtxmin=12;hangover=1; \
       mode-set-recv=0,1,2,3,4,5,6
       a=fmtp:98 silencesupp=0;dtxmax=32;dtxmin=12;hangover=1; \
       mode-set-recv=0,4
       a=fmtp:99 recvmode=0
       a=maxptime:120
]]></artwork></figure>

     <t>Example offer-answer exchange between EVRC-NW and
     legacy EVRC-B (RFC 4788):</t>
     <figure><artwork> <![CDATA[        
      Offer:

        m=audio 55954 RTP/AVP 97 98 99
        a=rtpmap:97 EVRCNW0/16000
        a=rtpmap:98 EVRCWB0/16000
        a=rtpmap:99 EVRCB0/8000
        a=rtpmap:97 mode-set-recv=0,1,2,3,4,5,6
        a=fmtp:98 mode-set-recv=0,4
        a=fmtp:99 recvmode=0

      Answer:

        m=audio 55954 RTP/AVP 99
        a=rtpmap:99 EVRCB0/8000
]]></artwork></figure>

     <t>Example offer-answer exchange between EVRC-NW and
     legacy EVRC-WB (RFC 5188): </t>
     <figure><artwork> <![CDATA[        
      Offer:

        m=audio 55954 RTP/AVP 97 98 99
        a=rtpmap:97 EVRCNW0/16000
        a=rtpmap:98 EVRCWB0/16000
        a=rtpmap:99 EVRCB0/8000
        a=rtpmap:97 mode-set-recv=0,1,2,3,4,5,6
        a=fmtp:98 mode-set-recv=0,4
        a=fmtp:99 recvmode=0

      Answer:

        m=audio 55954 RTP/AVP 98 99
        a=rtpmap:98 EVRCWB0/16000

]]></artwork></figure>

    </section>


    <section title="Security Considerations" anchor="sec_security">
     <t> Since compression is applied to the payload formats end-to-end, and
      the encodings do not exhibit significant non-uniformity,
      implementations of this specification are subject to all the security
      considerations specified in RFC 3558 <xref target="RFC3558" />.  Implementations using the
      payload defined in this specification are subject to the security
      considerations discussed in RFC 3558 <xref target="RFC3558" />, RFC
      3550 <xref target="RFC3550" />, and any appropriate profile (for
      example, RFC 3551 <xref target="RFC3551"/>). Additional security considerations are described in RFC 6562 <xref target="RFC6562"/>. </t>
    </section>

   </middle>

  <back>
    <references title="Normative References">
      &RFC2119;
      &RFC3264;
      &RFC3550;
      &RFC3551;
      &RFC3558;
      &RFC6838;
      &RFC4393;
      &RFC4566;
      &RFC4788;
      &RFC4855;
      &RFC5188;
      &RFC6562;

      <reference anchor='SO73' target="http://www.3gpp2.org/public_html/specs/C.S0014-D_v3.0_EVRC.pdf">
        <front>
          <title>Enhanced Variable Rate Codec, Speech Service Options 3, 68, 70, and 73 for Wideband Spread Spectrum Digital Systems</title>
          <author><organization/></author>
          <date month='October' year='2010' />
        </front>
        <seriesInfo name='3GPP2' value='C.S0014-D v3.0' />
      </reference>
    </references>

    <references title="Informative References">
      &RFC2326;
      &RFC2974;
	  <reference anchor='S0050B' target="http://www.3gpp2.org/public_html/specs/C.S0050-B_v1.0_070521.pdf">
        <front>
          <title>3GPP2 File Formats for Multimedia Services</title>
          <author><organization/></author>
          <date month='May' year='2007' />
        </front>
        <seriesInfo name='3GPP2' value='C.S0050-B v1.0' />
      </reference>
    </references>
  </back>
</rfc>
