<?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.21 (Ruby 3.0.2) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-haptics-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="RTP-Payload-Haptic">RTP Payload for Haptics</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-haptics-02"/>
    <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 59?>

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

<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="I-D.ietf-mediaman-haptics"/>.</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="I-D.ietf-mediaman-haptics"/> 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 level 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 RTP Payload Header.</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 <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-type"/>.  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-style"/>, 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 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.</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 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 detection of lost RTP packets by the decoder.</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 section 4.3.3 of <xref target="I-D.ietf-mediaman-haptics"/> 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"/>.  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 an integer 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 1.</t>
      </section>
      <section anchor="sdp-registration">
        <name>SDP Parameter Registration</name>
        <t>This memo registers an '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=1;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>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.</t>
        <t>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.</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-consideration">
      <name>Congestion control consideration</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 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>This memo updates the media type registration of haptics/hmpg with IANA, in <xref target="format-param"/>.</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="I-D.ietf-mediaman-haptics">
          <front>
            <title>The 'haptics' Top-level Media Type</title>
            <author fullname="Yeshwant K Muthusamy" initials="Y. K." surname="Muthusamy">
         </author>
            <author fullname="Chris Ullrich" initials="C." surname="Ullrich">
         </author>
            <date day="27" month="July" year="2023"/>
            <abstract>
              <t>   This memo serves to register and document 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="Internet-Draft" value="draft-ietf-mediaman-haptics-05"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
lQAA

-->

</rfc>
