demo · v143

RTP Header Extension

A real RTCPeerConnection with an audio transceiver. Toggle which RTP header extensions you keep. The page calls setHeaderExtensionsToNegotiate, then runs offer/answer twice — v143 keeps your second-round choices instead of letting the negotiation re-permute.

capability

per-extension toggles (audio transceiver)

loading…

round 1 sender extensions

(not yet)

round 2 sender extensions

(not yet)

Each round runs a full offer/answer cycle on a single peer (loopback). Look at the URIs that survive each round.

the call

const tx = pc.addTransceiver("audio");
const caps = RTCRtpSender.getCapabilities("audio");
// v143: stable second-round negotiation
tx.setHeaderExtensionsToNegotiate(
  caps.headerExtensions.map((he) => ({
    uri: he.uri,
    direction: keep.has(he.uri) ? "sendrecv" : "stopped",
  }))
);

see also