<?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-06" category="std" consensus="true" submissionType="IETF" updates="9695" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="RTP-Payload-Haptic">RTP Payload for Haptics</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-haptics-06"/>
    <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 60?>

<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.</t>
    </abstract>
  </front>
  <middle>
    <?line 64?>

<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 is registering 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. It defines the "MIHS unit" as a unit of packetization suitable for streaming, and similar in essence to the NAL unit defined in some video specifications. This document describes how haptic data (MIHS units) can be transmitted using the RTP protocol. This document followed recommendations in <xref target="RFC8088"/> and <xref target="RFC2736"/> for RTP payload format writers.</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>Time Stamp (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 is 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   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 unit payload structure is specified in <xref target="aggregated"/>.</t>
        <figure anchor="_figure-transmission-style">
          <name>RTP Transmission mode</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 header</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) hold 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) hold 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 Haptic <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 DIS 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.</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><em>hmpg-ver</em>
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 release of the specifications, the value is "2023".</t>
        <t><em>hmpg-profile</em>
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 in the initial release of the specifications hold the values "simple-parametric" or "main".</t>
        <t><em>hmpg-lvl</em>
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 in the initial release of the specifications hold the value 1 or 2.</t>
        <t><em>hmpg-maxlod</em>
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 in the initial release of the specifications hold 0 or a positive integer.</t>
        <t><em>hmpg-avtypes</em> 
indicates, using a coma-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 in the initial release of the specifications hold values among "Vibration", "Pressure", "Temperature", "Custom".</t>
        <t><em>hmpg-modalities</em>
indicates, using a coma-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 in the initial release of the specifications 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><em>hmpg-bodypartmask</em>
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 in the initial release of the specifications hold a bit mask using bit positions defined in table 7 of <xref target="ISO.IEC.23090-31"/>.</t>
        <t><em>hmpg-maxfreq</em>
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 is defined as an integer or floating-point number in the initial release of the specifications.</t>
        <t><em>hmpg-minfreq</em>
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 is defined as an integer or floating-point number in the initial release of the specifications.</t>
        <t><em>hmpg-dvctypes</em>
indicates, using a coma-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 in the initial release of the specifications hold values among "LRA", "VCA", "ERM", "Piezo" or "Unknown".</t>
        <t><em>hmpg-silencesupp</em>
indicates whether silence suppression should be used (1) or not (0). The default value shall be 0.</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.</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 hmpg-profile=main;hmpg-lvl=1;hmpg-ver=2023
]]></artwork>
      <section anchor="sdp-offeranswer-considerations">
        <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 'hmpg-ver', 'hmpg-profile' and 'hmpg-lvl' have a mandatory character, since they represent implementation capabilities. The hmpg-ver, hmpg-profile, hmpg-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, hmpg-ver, hmpg-profile, and hmpg-lvl MUST NOT be changed in subsequent offers or answers.</t>
        <t>The properties expressed using SDP parameters other than 'hmpg-ver', 'hmpg-profile' and 'hmpg-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 'hmpg-ver' indicates the version of the haptic standard specification. If it is not specified, the initial version of the MPEG Haptic Coding specification SHOULD be assumed, although the sender and receiver MAY use a specific value based on an out-of-band agreement. The parameter 'hmpg-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 assumed, although the sender and receiver MAY use a specific value based on an out-of-band agreement. The parameter 'hmpg-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 assumed, although the sender and receiver MAY use a specific version based on an out-of-band agreement. Other parameters can be used to indicate bitstream properties as well as receiver capabilities. The parameters 'hmpg-maxlod', 'hmpg-avtypes', 'hmpg-bodypartmask', 'hmpg-maxfreq', 'hmpg-minfreq', 'hmpg-dvctypes', and 'hmpg-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 'hmpg-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"/>.</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 hmpg-maxlod, hmpg-bodypartmask, hmpg-maxfreq, hmpg-minfreq, hmpg-dvctypes, and hmpg-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 is 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 tempering.</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. This responsibility lays on anyone using RTP in an application. 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>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>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Philippe Guillotel, Quentin Galvane, Jonathan Lennox 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="2024"/>
          </front>
          <seriesInfo name="ISO/IEC" value="23090-31"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="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="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="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>
        <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="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="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>
        <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>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19a28bSZLgdwH6DwkZOIs9JC3Jz9HAwGpseew9P7SW3NN9
i0WjRCbJaherOJVFyWy777dfPPNRRcpSW54bLJYNt/jIyoyMjIxXRkQOBoPt
rSZvCntodt6fnZiTbFVU2dhMqtq8zBZNPnI721vZ+XltLw4NtBhIiwH/ur01
rkZlNofnx3U2aQa5bSaD7KIZVbUd1M1iMONeBnuPoG3WQMPPz4/Ojn/f3nJN
bbP5oXl1fPZie2sEv02renVoXDPe3soX9aFp6qVrDvb2/rx3AEBA60NzVmel
W1R1s711WdUfp3W1XBwaGXB7a7nAMdyh+fOjPz/EIbJy/EtWVCWMu7Jue2uR
H5r/bKpR3zjopLYTB+9Wc34Dc5lni0VeTv9rewtGXDazqj7c3jJmgP8zJi+h
65enQ/NzVk75K578y9WydPnH6PuqnsLUysbWz/Np3mQFf23nWV4cmhm3H66g
/b/l2GrMrYajas4tR9WybBAfH06P2iD8NDRja15UqxiGn7KL3NbJD1cD8Yke
GI7tpFp9DYhnWZmNM/4SX9tbZVXPsya/sISgV6fvhq+Onw0P7sNqDe7vH3JT
pa1X5YSbV6Vp7GhWVkU1XZmBeVaN7djUdlFbZ8uGW1QTk8/ntnbQu5nbcZ7t
cHfRivjp7cDQ92BoacI0drB38IA/O1vn1uUwvn9MHoBWAqzAmtVT28DaNM3C
Hd67d3l5OcxdNYRR7hEhZfX43pNH+wcHw1kzL5BCgE51YoQH7Oj9i2cH+/t/
PpT39x8+3NP3B4/vP9L3T/aePPHvnzzy398/ePTAf7//2L9/fLC3H70/0PcP
9w98m/uP9/ejcf37Bw+fPFw31sP9Pf8sbhiZwfbWYDAw2Tls0GzU4Hdns9zB
QswroC43qvNz60xWIj8wi8AxAA3EOJqZNW9Ojv82eGV49+OiZENzpB9pSQ3v
fwM9A7ktKgd0AAv/5tXLU7Ms88YBqY+K5Rh2o8no613plFmPOaXne9TYzGw2
BuKHVTK/2boC0jBz4Ajc3SIbfbSNG5ozgCxmc/KUwJ4VRXXpaAr8RP6bp8cs
AAZwhcljM4+DzJlLWxT4d1Jn03lM0GkHTWXmy6LJF4WNOhIIqxq2YZkVxi3P
m9XCwvaY5rgY1BeCJ0z13my+mPblZ1sDAi/zZmZeHb09QiBlVYGv5WNTVo0g
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
Z6QAAA==

-->

</rfc>
