<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-haptics-10" category="std" consensus="true" submissionType="IETF" updates="9695" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="RTP-Payload-Haptic">RTP Payload Format for Haptics</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-haptics-10"/>
    <author initials="" surname="HS Yang" fullname="Hyunsik Yang">
      <organization>InterDigital</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>hyunsik.yang@interdigital.com</email>
      </address>
    </author>
    <author initials="X." surname="de Foy" fullname="Xavier de Foy">
      <organization>InterDigital</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>xavier.defoy@interdigital.com</email>
      </address>
    </author>
    <date/>
    <area>Transport</area>
    <workgroup>avtcore</workgroup>
    <abstract>
      <?line 57?>

<t>This memo describes an RTP payload format for the MPEG-I haptic data. A haptic media stream is composed of MIHS units including a MIHS (MPEG-I Haptic Stream) unit header and zero or more MIHS packets. The RTP Payload header format allows for packetization of a MIHS unit in an RTP packet payload as well as fragmentation of a MIHS unit into multiple RTP packets. The original subtype registration for haptics/hmpg, registered with IANA in RFC9695, did not include any required or optional parameters. This memo updates RFC9695 and the haptics/hmpg registration to add optional parameters. It also provides SDP usage information for the haptics media type.</t>
    </abstract>
  </front>
  <middle>
    <?line 61?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Haptics provides users with tactile effects in addition to audio and video, allowing them to experience sensory immersion. Haptic data is mainly transmitted to devices that act as actuators and provides them with information to operate according to the values defined in haptic effects. The IETF registered haptics as a primary media type akin to audio and video <xref target="RFC9695"/>.</t>
      <t>The MPEG Haptics Coding standard <xref target="ISO.IEC.23090-31"/> defines the data formats, metadata, and codec architecture to encode, decode, synthesize and transmit haptic signals. Within this MPEG standard, a haptic media stream is composed of MIHS units including a MIHS (MPEG-I Haptic Stream) unit header and zero or more MIHS packets. The MIHS unit is a unit of packetization suitable for streaming, and similar in essence to the NAL (Network Abstraction Layer) unit defined in some video specifications. This document describes how haptic data (MIHS units) can be transmitted using the RTP protocol. This document follows recommendations in <xref target="RFC8088"/> and <xref target="RFC2736"/> for RTP payload format writers. This document does not specify synchronization (lip sync) mechanisms between haptics and audio/video components.  In addition, this document specifies the associated SDP parameters and SDP Offer/Answer considerations for the haptics media type.</t>
    </section>
    <section anchor="conventions">
      <name>Conventions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <section anchor="definition">
      <name>Definition</name>
      <t>This document uses the definitions of the MPEG Haptics Coding standard <xref target="ISO.IEC.23090-31"/>. Some of these terms are provided here for convenience.</t>
      <t>Actuator: component of a device for rendering haptic sensations.</t>
      <t>Avatar: body (or part of body) representation.</t>
      <t>Band: component in a channel for containing effects for a specific range of frequencies.</t>
      <t>Channel: component in a perception containing one or more bands rendered on a device at a specific body location.</t>
      <t>Device: physical system having one or more actuators configured to render a haptic sensation corresponding with a given signal.</t>
      <t>Effect: component of a band for defining a signal, consisting of a haptic waveform or one or more haptic keyframes.</t>
      <t>Experience: top level haptic component containing perceptions and metadata.</t>
      <t>Haptics: tactile sensations.</t>
      <t>Keyframe: component of an effect mapping a position in time or space to an effect parameter such as amplitude or frequency.</t>
      <t>Metadata: global information about an experience, perception, channel, or band.</t>
      <t>MIHS unit: unit of packetization of the MPEG-I Haptic Stream format, which is used as unit of payload in the format described in this memo. See <xref target="haptic-format-dsecription"/> for details.</t>
      <t>Modality: type of haptics, such as vibration, force, pressure, position, velocity, or temperature.</t>
      <t>Perception: haptic perception containing channels of a specific modality.</t>
      <t>Signal: representation of the haptics associated with a specific modality to be rendered on a device.</t>
      <t>Hmpg format: hmpg is a binary compressed format for haptics data. Information is stored in a binary form and data compression is applied on data at the band level. The haptics/hmpg media subtype is registered in <xref target="RFC9695"/> and updated by this memo.</t>
      <t>Independent unit: a MIHS unit is independent if it can be decoded independently from earlier units. Independent units contain timing information and are also called "sync units" in <xref target="ISO.IEC.23090-31"/>.</t>
      <t>Dependent unit: a MIHS unit is dependent if it requires earlier units for decoding. Dependent units do not contain timing information and are also called "non-sync units" in <xref target="ISO.IEC.23090-31"/>.</t>
      <t>Time-independent effect: a haptic effect that occurs regardless of time. The tactile feedback of a texture is a representative example. Time-independent effects are encoded in spatial MIHS units, defined in <xref target="MIHS-format"/>.</t>
      <t>Time-dependent effect: a haptic effect that varies over time. For example, tactile feedback for vibration and force  are time-dependent effects, and are encoded in temporal MIHS units, defined in <xref target="MIHS-format"/>.</t>
    </section>
    <section anchor="haptic-format-dsecription">
      <name>Haptic Format Description</name>
      <section anchor="overview-of-haptic-coding">
        <name>Overview of Haptic Coding</name>
        <t>The MPEG Haptics Coding standard specifies methods for efficient transmission and rendering of haptic signals, to enable immersive experiences. It supports multiple types of perceptions, including the most common vibrotactile (sense of touch that perceives vibrations) and kinesthetic perceptions (tactile resistance or force), but also other, less common perceptions, including for example the sense of temperature or texture. It also supports two approaches for encoding haptic signals: a "quantized" approach based on samples of measured data, and a "descriptive" approach where the signal is synthesized using a combination of functions. Both quantized and descriptive data can be encoded in a human-readable exchange format based on JSON (.hjif), or in a binary packetized format for distribution and streaming (.hmpg). This last format is referred to as the MPEG-I Haptic Stream (MIHS) format and is a base for the RTP payload format described in this document.</t>
      </section>
      <section anchor="MIHS-format">
        <name>MPEG-I Haptic Stream (MIHS) format</name>
        <t>MIHS is a stream format used to transport haptic data. Haptic data including haptic effects is packetized according to the MIHS format, and delivered to actuators, which operate according to the provided effects. The MIHS format has two levels of packetization, MIHS units and MIHS packets.</t>
        <t>MIHS units are composed of a MIHS unit header and zero or more MIHS packets. Four types of MIHS units are defined. An initialization MIHS unit contains MIHS packets carrying metadata necessary to reset and initialize a haptic decoder, including a timestamp. A temporal MIHS unit contains one or more MIHS packets defining time-dependent effects and providing modalities such as pressure, velocity, and acceleration. The duration of a temporal unit is a positive number. A spatial MIHS unit contains one or more MIHS packets providing time-independent effects, such as vibrotactile texture, stiffness, and friction. The duration of a spatial unit is always zero.
A silent MIHS unit indicates that there is no effect during a time interval and its duration is a positive number.</t>
        <t>A MIHS unit can be marked as independent or dependent. When a decoder processes an independent unit, it resets the previous effects and therefore provides a haptic experience independent from any previous MIHS unit.  A dependent unit is the continuation of previous MIHS units and cannot be independently decoded and rendered without having decoded previous MIHS unit(s). Initialization and spatial MIHS units are always independent units. Temporal and silent MIHS units can be dependent or independent units.</t>
        <t><xref target="_figure-stream"/> illustrates a succession of MIHS units in a MIHS stream.</t>
        <figure anchor="_figure-stream">
          <name>Example of MIHS stream</name>
          <artwork><![CDATA[
+--------+ +-------+ +------------+ +-------------+ +-----------+
|Initial*| |Spatial| |  Temporal  | |Temporal Unit| |Silent Unit|
| Unit   |-| Unit  |-|Unit(indep.)|-| (dependent) |-| (indep.)  |
+--------+ +-------+ +------------+ +-------------+ +-----------+
*Initialization 
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="payload-format-for-haptics">
      <name>Payload Format For Haptics</name>
      <section anchor="rtp-header-usage">
        <name>RTP Header Usage</name>
        <t>The RTP header is defined in <xref target="RFC3550"/> and represented in <xref target="_figure-rtpheader"/>. Some of the header field values are interpreted as follows.</t>
        <figure anchor="_figure-rtpheader">
          <name>RTP header for Haptic.</name>
          <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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=2|P|X|  CC   |M|     PT      |       Sequence Number         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           Timestamp                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Synchronization Source (SSRC) Identifier            |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
|            Contributing Source (CSRC) Identifiers             |
|                             ....                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>
        <t>Payload type (PT): 7 bits. The assignment of a payload type MUST be performed either through the profile used or in a dynamic way.</t>
        <t>TimeStamp (TS): 32 bits. A timeStamp representing the sampling time of the first sample of the MIHS unit in the RTP payload. The clock frequency MUST be set to the sample rate of the encoded haptic data and is conveyed out-of-band (e.g., as an SDP parameter).</t>
        <t>Marker bit (M): 1 bit. The marker bit SHOULD be set to one in the first non-silent RTP packet after a period of haptic silence. This enables jitter buffer adaptation and haptics device washout (i.e., reset to a neutral position) prior to the beginning of the burst with minimal impact on the quality of experience for the end user. The marker bit in all other packets MUST be set to zero.</t>
      </section>
      <section anchor="payload-header">
        <name>Payload Header</name>
        <t>The RTP payload header follows the RTP header. <xref target="_figure-payloadheader"/> describes the RTP payload header for Haptic.</t>
        <figure anchor="_figure-payloadheader">
          <name>RTP Payload Header for Haptic.</name>
          <artwork><![CDATA[
+---------------+
|0|1|2|3|4|5|6|7|
+-+-+-+-+-+-+-+-+
|D| UT  |   L   |
+-+-----+-------+
]]></artwork>
        </figure>
        <t>D (Dependency, 1 bit): this field is used to indicate whether the MIHS unit included in the RTP payload is, when its value is one, dependent or, when its value is zero, independent.</t>
        <t>UT (Unit Type, 3 bits): this field indicates the type of the MIHS unit included in the RTP payload. UT field values are listed in <xref target="_figure-transmission-type"/>.</t>
        <t>L (MIHS Layer, 4 bits): this field is an integer value which indicates the priority order of the MIHS unit included in the RTP payload, as determined by the haptic sender (e.g., by the haptic codec), based on application-specific needs. For example, the sender may use the MIHS layer to prioritize perceptions with the largest impact on the end-user experience. Zero corresponds to the highest priority. The semantic of individual MIHS layers are not specified and left for the application to assign.</t>
      </section>
      <section anchor="payload-structures">
        <name>Payload Structures</name>
        <t>Three different types of RTP packet payload structures are specified. A single unit packet contains a single MIHS unit in the payload.  A fragmentation unit contains a subset of a MIHS unit. An aggregation packet contains multiple MIHS units in the payload. The unit type (UT) field of the RTP payload header, as shown in  <xref target="_figure-transmission-type"/>, identifies both the payload structure and, in the case of a single-unit structure, also identifies the type of MIHS unit present in the payload.</t>
        <figure anchor="_figure-transmission-type">
          <name>Payload structure type for haptic</name>
          <artwork><![CDATA[
Unit     Payload   Packet Type Name
Type     Structure
--------------------------------------------
0        N/A       Reserved
1        Single    Initialization MIHS Unit
2        Single    Temporal MIHS Unit
3        Single    Spatial MIHS Unit
4        Single    Silent MIHS Unit
5        Aggr      Aggregation Packet(STAP)
6        Aggr      Aggregation Packet(MTAP)
7        Frag      Fragmentation Unit
]]></artwork>
        </figure>
        <t>The payload structures are represented in <xref target="_figure-transmission-style"/>.  The single unit payload structure is specified in <xref target="single"/>. The fragmented unit payload structure is specified in <xref target="fragmented"/>. The aggregation packet payload structure is specified in <xref target="aggregated"/>.</t>
        <figure anchor="_figure-transmission-style">
          <name>RTP Transmission modes</name>
          <artwork><![CDATA[
                                            +-------------------+
                                            |     RTP Header    |
                                            +-------------------+
                                            | RTP Payload Header|
                      +-------------------+ |   (UT = Aggr)     |
                      |     RTP Header    | +-------------------+
+-------------------+ +-------------------+ |  MIHS unit 1 Size |
|     RTP Header    | | RTP Payload Header| +-------------------+
+-------------------+ |   (UT = Frag)     | |    MIHS Unit 1    |
| RTP Payload Header| +-------------------+ +-------------------+
+-------------------+ |     FU Header     | |  MIHS unit 2 Size |
|    RTP Payload    | +-------------------+ +-------------------+
| (Single MIHS unit)| |    RTP Payload    | |    ...            |
+-------------------+ +-------------------+ +-------------------+
(a) single unit      (b)fragmentation unit (c) aggregation packet
]]></artwork>
        </figure>
        <section anchor="single">
          <name>Single Unit Payload Structure</name>
          <t>In a single unit payload structure, as described in <xref target="_figure-transmission-single"/>, the RTP packet contains the RTP header, followed by the payload header and one single MIHS unit. The payload header follows the structure described in <xref target="payload-header"/>. The  payload contains a MIHS unit as defined in <xref target="ISO.IEC.23090-31"/>.</t>
          <figure anchor="_figure-transmission-single">
            <name>Single Unit Payload Structure</name>
            <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                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Payload Header |                                               |
+---------------+                                               |
|                        MIHS Unit Data                         |
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               :...OPTIONAL RTP padding        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
        </section>
        <section anchor="fragmented">
          <name>Fragmented Unit Payload Structure</name>
          <t>In a fragmented unit payload structure, as described in <xref target="_figure-fragment-structure"/>, the RTP packet contains the RTP header, followed by the payload header, a Fragmented Unit (FU) header, and a MIHS unit fragment. The payload header follows the structure described in <xref target="payload-header"/>. The value of the UT field of the payload header is 7. The FU header follows the structure described in <xref target="_figure-fragment-header"/>.</t>
          <figure anchor="_figure-fragment-structure">
            <name>Fragmentation Unit Payload Structure</name>
            <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                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Payload Header | FU Header     |                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               |
|                     MIHS Unit Fragment                        |
|                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               :...OPTIONAL RTP Padding        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t>FU headers are used to enable fragmenting a single MIHS unit into multiple RTP packets. Fragments of the same MIHS unit MUST be sent in consecutive order with ascending RTP sequence numbers (with no other RTP packets within the same RTP stream being sent between the first and last fragment). FUs MUST NOT be nested, i.e., an FU MUST NOT contain a subset of another FU.</t>
          <t><xref target="_figure-fragment-header"/> describes a FU header, including the following fields:</t>
          <figure anchor="_figure-fragment-header">
            <name>Fragmentation unit header</name>
            <artwork><![CDATA[
+-------------------------------+
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+---+---+---+---+---+---+---+---+
|FUS|FUE|   RSV     |     UT    |
+---+---+-----------+-----------+
]]></artwork>
          </figure>
          <t>FUS (Fragmented Unit Start, 1 bit): this field MUST be set to 1 for the first fragment, and 0 for the other fragments.</t>
          <t>FUE (Fragmented Unit End, 1 bit): this field MUST be set to 1 for the last fragment, and 0 for the other fragments.</t>
          <t>RSV (Reserved, 3 bits): these bits MUST be set to 0 by the sender and ignored by the receiver.</t>
          <t>UT (Unit Type, 3 bits): this field indicates the type of the MIHS unit this fragment belongs to, using values defined in <xref target="_figure-transmission-type"/>.</t>
          <t>The use of MIHS unit fragmentation in RTP means that a media receiver can receive some fragments, but not other fragments. The missing fragments will typically not be retransmitted by RTP. This results in partially received MIHS units, which can be either dropped or used by the decoding application, based on implementation.</t>
        </section>
        <section anchor="aggregated">
          <name>Aggregation Packet Payload Structure</name>
          <t>In an aggregation packet, as described in <xref target="_figure-aggre-structure"/>, the RTP packet contains an RTP header, followed by a payload header, and, for each aggregated MIHS Unit, a MIHS unit size followed by the MIHS unit. The payload header follows the structure described in <xref target="payload-header"/>.</t>
          <figure anchor="_figure-aggre-structure">
            <name>Single-Time Aggregation Packet</name>
            <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                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        RTP Payload Header     |       MIHS Unit 1 Size        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           MIHS Unit 1                         |
    |                                                               |
    :                                                               :
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        MIHS Unit 2 Size     |                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                 |
    |                           MIHS Unit 2                         |
    |                                                               |
    |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               :...OPTIONAL RTP padding        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure>
          <t><xref target="_figure-aggre-structure"/> shows a Single-Time Aggregation Packet (STAP), which can be used to transmit multiple MIHS units that correspond to the same timestamp. For example, if two frequencies are used for the same content, they can be transmitted at once in a STAP. Multiple spatial units can also be sent together in a STAP, since this type of haptics data is time independent. The MIHS unit length field (16 bits) holds the length of the MIHS unit following it, in bytes. The value of the UT field of the payload header is 5.</t>
          <figure anchor="_figure-aggremtap-structure">
            <name>Multiple-time aggregation packet</name>
            <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                           |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        RTP Payload Header     |       MIHS Unit 1 Size        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           TS Offset           |               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               |
    |                           MIHS Unit 1                         |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       MIHS Unit 2 Size        |            TS Offset          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   TS offset   |                                               |
    |-+-+-+-+-+-+-+-+                                               |
    |                          MIHS Unit 2                          |
    |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               :...OPTIONAL RTP padding        |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
]]></artwork>
          </figure>
          <t><xref target="_figure-aggremtap-structure"/> shows a multi-time aggregation packet. It is used to transmit multiple MIHS units with different timestamps, in one RTP packet. Multi-time aggregation can help reduce the number of packets, in environments where some delay is acceptable. The value of the UT field of the Payload Header is 6. The MIHS unit length field (16 bits) holds the length of the MIHS unit following it, in bytes. The timestamp offset field (TS offset, 16 bits) is present in the MTAP case, and MUST be set to the value of (time of the MIHS unit - RTP timestamp of the packet).  The timestamp offset of the earliest aggregation unit MUST always be zero. Therefore, the RTP timestamp of the MTAP is identical to the earliest MIHS unit time.</t>
        </section>
      </section>
      <section anchor="mihs-trans">
        <name>MIHS Units Transmission Considerations</name>
        <t>The following considerations apply for the streaming of MIHS units over RTP:</t>
        <t>The MIHS format enables variable duration units and uses initialization MIHS units to declare the duration of subsequent non-zero duration MIHS units, as well as the maximum variation of this duration. A sender SHOULD set constant or low-variability (e.g., lower than the playout buffer) durations in initialization MIHS units, for RTP streaming. This enables the receiver to determine early (e.g., using a timer) when a unit has been lost and make the decoder more robust to RTP packet loss. If a sender sends MIHS units with high duration variations, the receiver MAY need to wait for a long period of time (e.g., the upper bound of the duration variation), to determine if a MIHS unit was lost in transmission. Whether this behavior is acceptable or not is application dependent.</t>
        <t>The MIHS format uses silent MIHS units to signal haptic silence. A sender MAY decide not to send silent units, to save network resources. Since, from a receiver standpoint, a missed MIHS unit MAY originate from a not-sent silent unit, or a lost packet, a sender MAY send one, or a few, MIHS silent units at the beginning of a haptic silence. If a media receiver receives a MIHS silent unit, the receiver SHOULD assume that silence is intended until the reception of a non-silent MIHS unit. This can reduce the number of false detections of lost RTP packets by the decoder.</t>
        <t>In some multimedia conference scenarios using an RTP video mixer (e.g., when adding or selecting a new source), it is recommended to use Full Intra Request (FIR) feedback messages with Haptics <xref target="RFC5104"/>. The purpose of the FIR message is to cause an encoder to send a decoder refresh point at the earliest opportunity. In the context of haptics, an appropriate decoder refresh point is an initialization MIHS unit. The initialization MIHS unit point enables a decoder to be reset to a known state and be able decode all MIHS units following it.</t>
      </section>
    </section>
    <section anchor="payload-format-parameters">
      <name>Payload Format Parameters</name>
      <t>This section describes payload format parameters. <xref target="format-param"/> updates the 'haptics' Media Type Registration and <xref target="optional-param"/> specifies new optional parameters. <xref target="sdp-registration"/> further registers a new token in the media sub-registry of the Session Description Protocols (SDP) Parameters registry.</t>
      <section anchor="format-param">
        <name>Media Type Registration Update</name>
        <t>This memo updates the 'hmpg' haptic subtype defined in <xref target="RFC9695"/> for use with the MPEG-I haptics streamable binary coding format described in ISO/IEC 23090-31: Haptics coding <xref target="ISO.IEC.23090-31"/>. This memo especially defines optional parameters for this type in <xref target="optional-param"/>. The original subtype registration for haptics/hmpg, registered with IANA in <xref target="RFC9695"/>, did not include any required or optional parameters. This document introduces optional parameters to enable extended functionality while maintaining backward compatibility.</t>
        <t>A mapping of the parameters into the Session Description Protocol (SDP) <xref target="RFC8866"/> is also provided for applications that use SDP. Equivalent parameters could be defined elsewhere for use with control protocols that do not use SDP.
The receiver MUST ignore any parameter unspecified in this memo.</t>
        <t>The following entries identify the media type being updated:</t>
        <t>Type name: haptics</t>
        <t>Subtype name: hmpg</t>
        <t>The following entries are replaced by this memo:</t>
        <t>Optional parameters: see section 6.2 of RFC XXX (note to RFC editor: replace with this RFC's number).</t>
        <t>Person &amp; email address to contact for further information: Yeshwant Muthusamy (yeshwant@yeshvik.com) and Hyunsik Yang (hyunsik.yang@interdigital.com)</t>
      </section>
      <section anchor="optional-param">
        <name>Optional Parameters Definition</name>
        <t>Among the optional SDP parameters defined in this section, some parameters have a default value which SHOULD be inferred if the parameter is not present, unless an out-of-band agreement indicates a different value, as described in <xref target="sdp-cons"/>. The values of the SDP parameters indicated in this section are based on the current version of the MPEG Haptics Coding standard (ISO/IEC 23090-31:2025) and may be different in future versions of <xref target="ISO.IEC.23090-31"/>.</t>
        <t>ver:</t>
        <t>This parameter provides the year of the edition and amendment of ISO/IEC 23090-31 that this file conforms to, as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.version is a string which may hold values such as XXXX or XXXX-Y where XXXX is the year of publication and Y is the amendment number, if any. For the initial (and current) version of the MPEG Haptics Coding standard (ISO/IEC 23090-31:2025) , the value is "2025". When ver  is not present, a default value of "2025" SHOULD be inferred.</t>
        <t>profile:</t>
        <t>This parameter indicates the profile used to generate the encoded stream as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.profile is a string which may hold the values "simple-parametric" or "main". When profile is not present, the default value "main" SHOULD be inferred.</t>
        <t>lvl:</t>
        <t>This parameter indicates the level used to generate the encoded stream as defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics object.level is an integer which may hold the values 1 or 2. When lvl is not present, the default value 2 SHOULD be inferred.</t>
        <t>maxlod:</t>
        <t>This parameter indicates the maximum level of details to use for the avatar(s). The avatar level of detail (LOD) is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.avatar object.lod is an integer which may hold the value 0 or a positive integer.</t>
        <t>avtypes:</t>
        <t>This parameter indicates, using a comma-separated list, types of haptic perception represented by the avatar(s). The avatar type is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.avatar object.type is a string which may hold values among "Vibration", "Pressure", "Temperature", "Custom".</t>
        <t>modalities:</t>
        <t>This parameter indicates, using a comma-separated list, haptic perception modalities (e.g., pressure, acceleration, velocity, position, temperature, etc.). The perception modality is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.perception object.perception_modality is a string which may hold values among "Pressure", "Acceleration", "Velocity", "Position", "Temperature", "Vibrotactile", "Water", "Wind", "Force", "Electrotactile", "Vibrotactile Texture", "Stiffness", "Friction", "Humidity", "User-defined Temporal", "User-defined Spatial", "Other".</t>
        <t>bodypartmask:</t>
        <t>This parameter is an integer which indicates, using a bitmask, the location of the devices or actuators on the body. The body part mask is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.body_part_mask is a 32-bit integer which may hold a bit mask using bit positions defined in table 7 of <xref target="ISO.IEC.23090-31"/>.</t>
        <t>maxfreq:</t>
        <t>This parameter is an integer which indicates the maximum frequency of haptic data for vibrotactile perceptions (Hz). Maximum frequency is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.maximum_frequency.</t>
        <t>minfreq:</t>
        <t>This parameter is an integer which indicates the minimum frequency of haptic data for vibrotactile perceptions (Hz). Minimum frequency is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.minimum_frequency.</t>
        <t>dvctypes:</t>
        <t>This parameter indicates, using a comma-separated list, the types of actuators. The device type is defined in <xref target="ISO.IEC.23090-31"/>: MPEG_haptics.reference_device object.type is a string which may hold values among "LRA", "VCA", "ERM", "Piezo" or "Unknown".</t>
        <t>silencesupp:</t>
        <t>This parameter is an integer which indicates whether silence suppression should be used (1) or not (0). When silencesupp is not present, the default value 0 SHOULD be inferred.</t>
      </section>
      <section anchor="sdp-registration">
        <name>SDP Parameter Registration</name>
        <t>This memo registers a 'haptics' token in the media sub-registry of the Session Description Protocols (SDP) Parameters registry. This registration contains the required information elements outlined in the SDP registration procedure defined in section 8.2 of <xref target="RFC8866"/>.</t>
        <t>(1)  Contact Information:</t>
        <artwork><![CDATA[
       Name: Hyunsik Yang
       Email: hyunsik.yang@interdigital.com
]]></artwork>
        <t>(2)  Name being registered (as it will appear in SDP): haptics</t>
        <t>(3)  Long-form name in English: haptics</t>
        <t>(4)  Type of name ('media', 'proto', 'fmt', 'bwtype', 'nettype', or
        'addrtype'): media</t>
        <t>(5)  Purpose of the registered name:</t>
        <artwork><![CDATA[
       The 'haptics' media type for the Session Description Protocol
       is used to describe a media stream whose content can be 
       rendered as touch-related sensations. 
       The media subtype further describes the specific
       format of the haptics stream.  The 'haptics' media type for
       SDP is used to establish haptics media streams.
]]></artwork>
        <t>(6)  Specification for the registered name: RFC XXXX</t>
        <t>RFC Editor Note: Replace RFC XXXX with the published RFC number.</t>
      </section>
    </section>
    <section anchor="sdp-considerations">
      <name>SDP Considerations</name>
      <t>The mapping of above defined payload format media type to the corresponding fields in the Session Description Protocol (SDP) is done according to <xref target="RFC8866"/>.</t>
      <t>The media name in the "m=" line of SDP MUST be haptics.</t>
      <t>The encoding name in the "a=rtpmap" line of SDP MUST be hmpg</t>
      <t>The clock rate in the "a=rtpmap" line may be any sampling rate, typically 8000.</t>
      <t>The OPTIONAL parameters (defined in <xref target="optional-param"/>), when present, MUST be included in the "a=fmtp" line of SDP. This is expressed as a media type string, in the form of a semicolon-separated list of parameter=value pairs. Parameter values, including string values, MUST be written without quotation marks ("") in SDP. Parameter values which are strings are not case sensitive and SHOULD be written in lowercase.</t>
      <t>An example of media representation corresponding to the hmpg RTP payload in SDP is as follows:</t>
      <artwork><![CDATA[
m=haptics 43291 UDP/TLS/RTP/SAVPF 115
a=rtpmap:115 hmpg/8000
a=fmtp:115 profile=main;lvl=1;ver=2025
]]></artwork>
      <section anchor="sdp-cons">
        <name>SDP Offer/Answer Considerations</name>
        <t>When using the offer/answer procedure described in <xref target="RFC3264"/> to negotiate the use of haptic, the following considerations apply:</t>
        <t>When used for a unidirectional stream, the SDP parameters represent the properties of the sender (on the sending side) and of the receiver (on the receiving side). When used for a sendrecv stream, the SDP parameters represent the properties of the receiver.</t>
        <t>The receiver properties expressed using the SDP parameters 'ver', 'profile' and 'lvl' correspond to implementation capabilities. The ver, profile, lvl parameters MUST be used symmetrically in SDP offer and answer. That is, their values in the answer MUST match those in the offer, either explicitly signaled or implicitly inferred. In the same session, ver, profile, and lvl MUST NOT be changed in subsequent offers or answers.</t>
        <t>The properties expressed using SDP parameters other than 'ver', 'profile' and 'lvl' are provided as recommendations for efficient data transmission and are not binding, meaning that a sender is encouraged but not required to conform to the parameters specified by the receiver. These properties MAY be set to different values in offers and answers. These properties MAY be updated in subsequent offers or answers.</t>
        <t>Any receiver compliant with <xref target="ISO.IEC.23090-31"/> MUST accept any stream with a compatible version, profile and level. A receiver supporting a more general profile will accept a stream corresponding to a same or less general profile (e.g., "main" is more general than "simple-parametric"). A receiver supporting a given level will accept a stream corresponding to a same or lower level. A receiver supporting a given version will accept a stream corresponding to the same version and MAY accept other versions. A receiver MAY ignore any part of a received stream, e.g., that it does not have support for rendering.</t>
        <t>The haptic signal can be sampled at different rates. The MPEG Haptics Coding standard does not mandate a specific frequency. A typical sample rate is 8000Hz.</t>
        <t>The parameter 'ver' indicates the version of the haptic standard specification. If it is not specified, the The parameter 'ver' indicates the version of the haptic standard specification. If it is not specified, the value "2025" indicating the MPEG Haptics Coding standard ISO/IEC 23090-31:2025 <xref target="ISO.IEC.23090-31"/>  SHOULD be inferred, although the sender and receiver MAY use a specific value based on an out-of-band agreement. The parameter 'profile' is used to restrict the number of tools used (e.g., the simple-parametric profile fits enable simpler implementations than the main profile). If it is not specified, the most general profile "main" SHOULD be inferred, although the sender and receiver MAY use a specific value based on an out-of-band agreement. The parameter 'lvl' is used to further characterize implementations within a given profile, e.g., according to the maximum supported number of channels, bands, and perceptions. If it is not specified, the most general level "2" SHOULD be inferred, although the sender and receiver MAY use a specific version based on an out-of-band agreement.</t>
        <t>Other parameters can be used to indicate bitstream properties as well as receiver capabilities. The parameters 'maxlod', 'avtypes', 'bodypartmask', 'maxfreq', 'minfreq', 'dvctypes', and 'modalities' can be sent by a sender to reflect the characteristics of bitstreams and can be set by a receiver to reflect the nature and capabilities of local actuator devices, or a preferred set of bitstream properties. For example, different receivers MAY have different sets of local actuators, in which case these parameters can be used to select a stream adapted to the receiver. In some other cases, some receivers MAY indicate a preference for a set of bitstream properties such as perceptions, min/max frequency, or body-part-mask, which contribute the most to the user experience for a given application, in which case these parameters can be used to select a stream which include and possibly prioritizes those properties. For example, if the haptic stream server provides more information than the body mask specified by the receiver, the additional information can be either integrated into a single effect or ignored by the receiver.</t>
        <t>The parameter 'silencesupp' can be used to indicate sender and receiver capabilities or preferences. This parameter indicates whether silence suppression SHOULD be used, as described in <xref target="mihs-trans"/>. If it is not specified, the value "0", indicating no silence suppression, SHOULD be inferred, although the sender and receiver MAY use silence suppression based on an out-of-band agreement.</t>
      </section>
      <section anchor="declarative-sdp-considerations">
        <name>Declarative SDP Considerations</name>
        <t>When haptic content over RTP is offered with SDP in a declarative style, the parameters capable of indicating both bitstream properties as well as receiver capabilities are used to indicate only bitstream properties.  For example, in this case, the parameters maxlod, bodypartmask, maxfreq, minfreq, dvctypes, and modalities declare the values used by the bitstream, not the capabilities for receiving bitstreams. A receiver of the SDP is required to support all parameters and values of the parameters provided; otherwise, the receiver MUST reject or not participate in the session.  It falls on the creator of the session to use values that are expected to be supported by the receiving application.</t>
      </section>
    </section>
    <section anchor="congestion-control-considerations">
      <name>Congestion Control Considerations</name>
      <t>The general congestion control considerations for transporting RTP data apply to HMPG haptics over RTP as well <xref target="RFC3550"/>.</t>
      <t>It is possible to adapt network bandwidth usage by adjusting either the encoder bit rate or by adjusting the stream content (e.g., level of detail, body parts, actuator frequency range, target device types, modalities).</t>
      <t>In case of congestion, a receiver or intermediate node MAY prioritize independent packets over dependent ones, since the non-reception of an independent MIHS unit can prevent the decoding of multiple subsequent dependent MIHS units. In case of congestion, a receiver or intermediate node MAY prioritize initialization MIHS units over other units, since initialization MIHS units contain metadata used to re-initialize the decoder, and MAY drop silent MIHS units before other types of MIHS units, since a receiver MAY interpret a missing MIHS unit as a silence. It is also possible, using the layer field of the RTP payload header, to allocate MIHS units to different layers based on their content, to prioritize haptic data contributing the most to the user experience. In case of congestion, intermediate nodes and receivers SHOULD use the MIHS layer value to determine the relative importance of haptic RTP packets.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This RTP payload format is subject to security threats commonly associated with RTP payload formats, as well as threats specific to the interaction of haptic devices with the physical world, and threats associated with the use of compression by the codec. 
Security consideration for threats commonly associated with RTP payload formats are outlined in <xref target="RFC3550"/>, as well as in RTP profiles such as RTP/AVP <xref target="RFC3551"/>), RTP/AVPF <xref target="RFC4585"/>, RTP/SAVP <xref target="RFC3711"/>, or RTP/SAVPF <xref target="RFC5124"/>.</t>
      <t>Haptic sensors and actuators operate within the physical environment. This introduces the potential for information leakage through sensors, or damage to actuators due to data tampering. Additionally, misusing the functionalities of actuators (such as force, position, temperature, vibration, electro-tactile, etc.) MAY pose a risk of harm to the user, for example by setting keyframe parameters (e.g., amplitude, position, frequency) or channel gain to a value that surpasses a permissible range. While individual devices can implement security measures to reduce or eliminate those risks on a per-device basis, in some cases harm can be inflicted by setting values which are permissible for the individual device. For example, causing contact with the physical environment or triggering unexpected force feedback can potentially harm the user. Each haptic system should therefore implement system-dependent security measures, which are more error prone. To limit the risk that attackers exploit weaknesses in haptic systems, it is important that haptic transmission should be protected against malicious traffic injection or tampering.</t>
      <t>However, as "Securing the RTP Framework: Why RTP Does Not Mandate a Single Media Security Solution" <xref target="RFC7202"/> discusses, it is not an RTP payload format's responsibility to discuss or mandate what solutions are used to meet the basic security goals like confidentiality, integrity, and source authenticity for RTP in general. The responsibility for implementing security mechanisms lies with the application developer. They can find guidance on available security mechanisms and important considerations in "Options for Securing RTP Sessions" <xref target="RFC7201"/>. Applications SHOULD use one or more appropriate strong security mechanisms.</t>
      <t>The haptic codec used with this payload format uses a compression algorithm (see sections 8.2.8.5 and 8.3.3.2 in <xref target="ISO.IEC.23090-31"/>). An attacker MAY inject pathological datagrams into the stream which are complex to decode and cause the receiver to be overloaded, similarly to <xref target="RFC3551"/>.</t>
      <t>End-to-end security with authentication, integrity, or confidentiality protection will prevent a Media-Aware Network Element (MANE) from performing media-aware operations other than discarding complete packets. In the case of confidentiality protection, it will even be prevented from discarding packets in a media-aware way. To be allowed to perform such operations, a MANE is required to be a trusted entity that is included in the security context establishment.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This memo updates a media type registration with IANA; see <xref target="format-param"/>.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Philippe Guillotel, Quentin Galvane, Jonathan Lennox, Marius Kleidl and Stephan Wenger for the comments and discussions about this draft.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ISO.IEC.23090-31" target="https://www.iso.org/standard/86122.html">
          <front>
            <title>Information technology - Coded representation of immersive media</title>
            <author>
              <organization>ISO/IEC</organization>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="ISO/IEC" value="23090-31:2025"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <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. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This memorandum describes RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services. RTP does not address resource reservation and does not guarantee quality-of- service for real-time services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes. There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="RFC9695">
          <front>
            <title>The 'haptics' Top-Level Media Type</title>
            <author fullname="Y. K. Muthusamy" initials="Y. K." surname="Muthusamy"/>
            <author fullname="C. Ullrich" initials="C." surname="Ullrich"/>
            <date month="March" year="2025"/>
            <abstract>
              <t>This memo registers and documents the 'haptics' top-level media type, under which subtypes for representation formats for haptics may be registered. This document also serves as a registration for a set of subtypes, which are representative of some existing subtypes already in use.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9695"/>
          <seriesInfo name="DOI" value="10.17487/RFC9695"/>
        </reference>
        <reference anchor="RFC8866">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This memo defines the Session Description Protocol (SDP). SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. This document obsoletes RFC 4566.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8866"/>
          <seriesInfo name="DOI" value="10.17487/RFC8866"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2736">
          <front>
            <title>Guidelines for Writers of RTP Payload Format Specifications</title>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="December" year="1999"/>
            <abstract>
              <t>This document provides general guidelines aimed at assisting the authors of RTP Payload Format specifications in deciding on good formats. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="36"/>
          <seriesInfo name="RFC" value="2736"/>
          <seriesInfo name="DOI" value="10.17487/RFC2736"/>
        </reference>
        <reference anchor="RFC8088">
          <front>
            <title>How to Write an RTP Payload Format</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>This document contains information on how best to write an RTP payload format specification. It provides reading tips, design practices, and practical tips on how to produce an RTP payload format specification quickly and with good results. A template is also included with instructions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8088"/>
          <seriesInfo name="DOI" value="10.17487/RFC8088"/>
        </reference>
        <reference anchor="RFC3264">
          <front>
            <title>An Offer/Answer Model with Session Description Protocol (SDP)</title>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <date month="June" year="2002"/>
            <abstract>
              <t>This document defines a mechanism by which two entities can make use of the Session Description Protocol (SDP) to arrive at a common view of a multimedia session between them. In the model, one participant offers the other a description of the desired session from their perspective, and the other participant answers with the desired session from their perspective. This offer/answer model is most useful in unicast sessions where information from both participants is needed for the complete view of the session. The offer/answer model is used by protocols like the Session Initiation Protocol (SIP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3264"/>
          <seriesInfo name="DOI" value="10.17487/RFC3264"/>
        </reference>
        <reference anchor="RFC7201">
          <front>
            <title>Options for Securing RTP Sessions</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>The Real-time Transport Protocol (RTP) is used in a large number of different application domains and environments. This heterogeneity implies that different security mechanisms are needed to provide services such as confidentiality, integrity, and source authentication of RTP and RTP Control Protocol (RTCP) packets suitable for the various environments. The range of solutions makes it difficult for RTP-based application developers to pick the most suitable mechanism. This document provides an overview of a number of security solutions for RTP and gives guidance for developers on how to choose the appropriate security mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7201"/>
          <seriesInfo name="DOI" value="10.17487/RFC7201"/>
        </reference>
        <reference anchor="RFC7202">
          <front>
            <title>Securing the RTP Framework: Why RTP Does Not Mandate a Single Media Security Solution</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="April" year="2014"/>
            <abstract>
              <t>This memo discusses the problem of securing real-time multimedia sessions. It also explains why the Real-time Transport Protocol (RTP) and the associated RTP Control Protocol (RTCP) do not mandate a single media security mechanism. This is relevant for designers and reviewers of future RTP extensions to ensure that appropriate security mechanisms are mandated and that any such mechanisms are specified in a manner that conforms with the RTP architecture.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7202"/>
          <seriesInfo name="DOI" value="10.17487/RFC7202"/>
        </reference>
        <reference anchor="RFC5124">
          <front>
            <title>Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)</title>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <date month="February" year="2008"/>
            <abstract>
              <t>An RTP profile (SAVP) for secure real-time communications and another profile (AVPF) to provide timely feedback from the receivers to a sender are defined in RFC 3711 and RFC 4585, respectively. This memo specifies the combination of both profiles to enable secure RTP communications with feedback. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5124"/>
          <seriesInfo name="DOI" value="10.17487/RFC5124"/>
        </reference>
        <reference anchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="RFC3551">
          <front>
            <title>RTP Profile for Audio and Video Conferences with Minimal Control</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This document describes a profile called "RTP/AVP" for the use of the real-time transport protocol (RTP), version 2, and the associated control protocol, RTCP, within audio and video multiparticipant conferences with minimal control. It provides interpretations of generic fields within the RTP specification suitable for audio and video conferences. In particular, this document defines a set of default mappings from payload type numbers to encodings. This document also describes how audio and video data may be carried within RTP. It defines a set of standard encodings and their names when used within RTP. The descriptions provide pointers to reference implementations and the detailed standards. This document is meant as an aid for implementors of audio, video and other real-time multimedia applications. This memorandum obsoletes RFC 1890. It is mostly backwards-compatible except for functions removed because two interoperable implementations were not found. The additions to RFC 1890 codify existing practice in the use of payload formats under this profile and include new payload formats defined since RFC 1890 was published. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="65"/>
          <seriesInfo name="RFC" value="3551"/>
          <seriesInfo name="DOI" value="10.17487/RFC3551"/>
        </reference>
        <reference anchor="RFC4585">
          <front>
            <title>Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF)</title>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="S. Wenger" initials="S." surname="Wenger"/>
            <author fullname="N. Sato" initials="N." surname="Sato"/>
            <author fullname="C. Burmeister" initials="C." surname="Burmeister"/>
            <author fullname="J. Rey" initials="J." surname="Rey"/>
            <date month="July" year="2006"/>
            <abstract>
              <t>Real-time media streams that use RTP are, to some degree, resilient against packet losses. Receivers may use the base mechanisms of the Real-time Transport Control Protocol (RTCP) to report packet reception statistics and thus allow a sender to adapt its transmission behavior in the mid-term. This is the sole means for feedback and feedback-based error repair (besides a few codec-specific mechanisms). This document defines an extension to the Audio-visual Profile (AVP) that enables receivers to provide, statistically, more immediate feedback to the senders and thus allows for short-term adaptation and efficient feedback-based repair mechanisms to be implemented. This early feedback profile (AVPF) maintains the AVP bandwidth constraints for RTCP and preserves scalability to large groups. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4585"/>
          <seriesInfo name="DOI" value="10.17487/RFC4585"/>
        </reference>
        <reference anchor="RFC5104">
          <front>
            <title>Codec Control Messages in the RTP Audio-Visual Profile with Feedback (AVPF)</title>
            <author fullname="S. Wenger" initials="S." surname="Wenger"/>
            <author fullname="U. Chandra" initials="U." surname="Chandra"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="B. Burman" initials="B." surname="Burman"/>
            <date month="February" year="2008"/>
            <abstract>
              <t>This document specifies a few extensions to the messages defined in the Audio-Visual Profile with Feedback (AVPF). They are helpful primarily in conversational multimedia scenarios where centralized multipoint functionalities are in use. However, some are also usable in smaller multicast environments and point-to-point calls.</t>
              <t>The extensions discussed are messages related to the ITU-T Rec. H.271 Video Back Channel, Full Intra Request, Temporary Maximum Media Stream Bit Rate, and Temporal-Spatial Trade-off. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5104"/>
          <seriesInfo name="DOI" value="10.17487/RFC5104"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
AAA=

-->

</rfc>
