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

Negotiate mixed streams and extended offers

05

One RTP stream can alternate the two formats only with support from every recipient. Extended negotiation IDs are not packet IDs.

RFC 8285 · § 6EXAMPLE
4 / 4
Negotiate mixed streams and extended offersTwo offered alternatives share negotiation-only ID4096. The answer selects fictional level and maps it to free valid ID2. This exception does not permit remapping ordinary valid IDs.Agree before mixing formatsExtended offer ID4096 has two alternativesurn:example:level / urn:example:otherChoose level; assign free valid ID2Answer: a=extmap:2 urn:example:level4096 itself is not a usable wire IDOrdinary valid IDs MUST NOT be remappedRFC8285 · chapter 5 · state 4 · fictional values
04
Remap an extended offer before use

Two fictional alternatives share negotiation ID4096. The selected answer maps one to 2;4096 itself cannot fit an on-wire element ID.

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

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

Mixed forms across packets need agreement; a single packet still has one element format.

  • The preferred one-byte form MUST be supported by all receivers. A stream MUST use only one-byte or only two-byte headers unless every recipient is known to support mixing. Transmitters SHOULD NOT use two-byte form when everything fits one-byte form; a sender expecting an intermediary to add extensions SHOULD use two-byte form. IDs above 14 SHOULD signal intended two-byte use where applicable (§4.1.2).
  • a=extmap-allow-mixed takes no value and may be session- or media-level. A proposer SHALL support receiving mixed forms. When SDP Offer/Answer is supported and used, mixed-mode negotiation MUST use it. An offer wishing to mix MUST include the attribute; an answerer supporting and wishing to mix SHALL also include it (§6).
  • If the attribute is excluded, both clients SHALL NOT mix forms in the same RTP stream; they MAY use either form exclusively. Without Offer/Answer, mixed forms MUST NOT occur unless the transmitter has out-of-band knowledge that all potential recipients support them (§6). A lone offer flag or a guessed capability is insufficient.
  • With mixing established, packet A can use 0xBEDE and packet B can use 0x1000. Each packet still contains only its selected element format: extension types that do not match it MUST NOT be used there. The common ID space means an ID 1–14 has the same assigned meaning in either format (§§4.1.2,4.3,11).
  • Offer/Answer MAY use extended identifiers 4096–4351 to propose mutually exclusive alternatives or more extensions than fit the usable range. The answerer SHOULD select desired alternatives (at most one from a shared negotiation ID) and remap to a free valid ID. A copied extended ID can indicate support but cannot be used on wire until assigned a valid ID. This is different from remapping an already-valid offered ID, which is forbidden (§7).
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 ↗