diff --git a/index.html b/index.html index a8ed6e8..9f5042f 100644 --- a/index.html +++ b/index.html @@ -159,14 +159,32 @@
Set {{RTCRtpTransceiver/[[HeaderExtensionsToNegotiate]]}} to the +
If transceivers of the same kind exist in the current PeerConnection, + copy {{RTCRtpTransceiver/[[HeaderExtensionsToNegotiate]]}} from + the first such transceiver, in the order defined by the [=CollectTransceivers=] algorithm. + This ensures consistency across transceivers if they are added + after initial negotiation. +
+If no such transceiver exists, set {{RTCRtpTransceiver/[[HeaderExtensionsToNegotiate]]}} to the platform-specific list of implemented RTP header extensions. The {{RTCRtpHeaderExtensionCapability/direction}} attribute for all extensions that are mandatory to use MUST be initialized to an appropriate value other than {{RTCRtpTransceiverDirection/"stopped"}}. The {{RTCRtpHeaderExtensionCapability/direction}} attribute for extensions that will not be offered by default in an initial offer MUST - be initialized to {{RTCRtpTransceiverDirection/"stopped"}}.
+ be initialized to {{RTCRtpTransceiverDirection/"stopped"}}. ++ If there are header extensions whose state needs to be consistent across all transceivers + in a bundle, + and any other transceiver exists that will be included in the same bundle, + copy the {{RTCRtpHeaderExtensionCapability/direction}} attribute + for that extension from that other transceiver. +
+An example of header extensions that need to be identical across all + media sections is the key management extensions from [[RFC4567]], as described in section 5.35 of + [[RFC8859]], where they have category IDENTICAL. If this is supported and negotiated as "sendrecv", + and a new transceiver is added, that transceiver needs to also have the extension as "sendrecv". +
The list of header extensions that MUST/SHOULD be supported is listed in [[RTCWEB-RTP]], section 5.2. The "mid" extension is mandatory to use when BUNDLE is in use, per [[BUNDLE]] section @@ -230,6 +248,14 @@
+ Set transceiver.{{RTCRtpTransceiver/[[HeaderExtensionsToNegotiate]]}} + to negotiatedExtensions. + This ensures that unless further calls to {{RTCRtpTransceiver/setHeaderExtensionsToNegotiate}} are done, + subsequent offer/answer will not alter the list of extensions. +
+