Visual RFC.
ALL RFCs / RFC 8285
Read the RFC ↗
RFC 8285 / RTP header extensions

Bind local identifiers to negotiated URI meanings

04

An extmap attribute binds a compact session-local number to an absolute URI and, optionally, direction and configuration.

RFC 8285 · § 5EXAMPLE
4 / 4
Bind local identifiers to negotiated URI meaningsTwo different meanings assigned ID1 within one stream collide even with opposite directions. The mapping path stops; session-level and media-level map placement cannot be mixed.Agree on ID meaningsOne stream: ID1 → urn:example:levelSame ID1 → urn:example:otherConflicting meanings for one IDOpposite directions do not excuse collisionUse all session-level OR all media-level mapsRFC8285 · chapter 4 · state 4 · fictional values
04
Reject a colliding usable map

This chosen mapping check stops before use. Opposite send/receive directions do not justify reusing the same ID for two meanings.

Source for this drawing: RFC 8285 · Read RFC section 5 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

Finding a route and sending media are separate jobs.

Some messages set up a conversation or discover a reachable address. Other packets carry the audio or video. Follow those jobs separately.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

A local ID has no universal meaning; mappings and their scope supply it.

  • Session Description Protocol (SDP) describes media sessions. An offer proposes settings and an answer responds to them. The presence of this mechanism and the URI-to-ID mapping MUST be defined out of band. SDP can use a=extmap:<value>[/<direction>] <URI> [<extensionattributes>]. A usable ID is 1–14 for one-byte elements or 1–255 for two-byte elements, with 256 reserved for appbits signaling (§§4.3,5,8). Fictional URI urn:example:level in this guide is not an actual registered extension.
  • The URI MUST be absolute and identify the actual extension. URIs need not be dereferenceable. Domain-based URIs SHOULD contain a month-date mmyyyy, with definition/assignment authorized by that domain’s owner on or near that date. An RFC-defined extension SHOULD use a registered urn:ietf:params:rtp-hdrext: name. RFC 8285 describes Expert Review registration, not static global allocation of local IDs (§§5,10.1).
  • Usable IDs MUST be unique per media section, or once globally for session-level maps. Maps MUST be all session-level or all media-level; do not mix scopes. The same URI with identical attributes MUST NOT be repeated for the same stream. Within a BUNDLE group the m-lines share an ID space: the same URI/configuration MUST use the same ID, and configuration differences normally need different IDs unless the extension explicitly defines compatibility (§§5,7).
  • Direction is relative to the device whose SDP is being described. A sendonly extension offered to a receiver that wants it MUST be answered recvonly; the converse recvonly→sendonly also applies. An unsupported or unwanted extension SHOULD be removed; inactive can express supported-but-not-currently-used behavior. Explicit extension direction incompatible with its stream direction is an error (§7).
  • The answer MUST retain the same valid ID for the same offered extension; valid IDs MUST NOT be remapped in session updates. Updates MAY change directions or add/remove extensions. There is an important exception to simplistic “only accepted extensions may be sent”: either party MAY send other extensions, including inactive ones, for example for intermediaries, but only with a valid-range ID declared in SDP originated by that sender (§7). The small helpers model selected mappings, not complete SDP/BUNDLE/extension-specific negotiation.
DETAILS

Fictional metadata values, URI names and bounded packet/signaling models. Not an RTP stack, complete SDP negotiation, live loss measurement or cryptographic implementation.

Read the RFC section ↗

All chapters in RFC 8285

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗