rfc9725v4.txt   rfc9725.txt 
skipping to change at line 171 skipping to change at line 171
+-------------+ +---------------+ +--------------+ +---------------+ +-------------+ +---------------+ +--------------+ +---------------+
| WHIP client | | WHIP endpoint | | Media server | | WHIP session | | WHIP client | | WHIP endpoint | | Media server | | WHIP session |
+--+----------+ +---------+-----+ +------+-------+ +--------|------+ +--+----------+ +---------+-----+ +------+-------+ +--------|------+
| | | | | | | |
| | | | | | | |
|HTTP POST (SDP offer) | | | |HTTP POST (SDP offer) | | |
+------------------------>+ | | +------------------------>+ | |
|201 Created (SDP answer) | | | |201 Created (SDP answer) | | |
+<------------------------+ | | +<------------------------+ | |
| ICE REQUEST | | | ICE/STUN REQUEST | |
+--------------------------------------->+ | +--------------------------------------->+ |
| ICE RESPONSE | | | ICE/STUN RESPONSE | |
|<---------------------------------------+ | |<---------------------------------------+ |
| DTLS SETUP | | | DTLS SETUP | |
|<======================================>| | |<======================================>| |
| RTP/RTCP FLOW | | | RTP/RTCP FLOW | |
+<-------------------------------------->+ | +<-------------------------------------->+ |
| HTTP DELETE | | HTTP DELETE |
+---------------------------------------------------------->+ +---------------------------------------------------------->+
| 200 OK | | 200 OK |
<-----------------------------------------------------------x <-----------------------------------------------------------x
skipping to change at line 438 skipping to change at line 438
If the WHIP session supports either Trickle ICE or ICE restarts, but If the WHIP session supports either Trickle ICE or ICE restarts, but
not both, it MUST return a "422 Unprocessable Content" error response not both, it MUST return a "422 Unprocessable Content" error response
for the HTTP PATCH requests that are not supported as per for the HTTP PATCH requests that are not supported as per
Section 15.5.21 of [RFC9110]. Section 15.5.21 of [RFC9110].
The WHIP client MAY send overlapping HTTP PATCH requests to one WHIP The WHIP client MAY send overlapping HTTP PATCH requests to one WHIP
session. Consequently, those HTTP PATCH requests may be received out session. Consequently, those HTTP PATCH requests may be received out
of order by the WHIP session. Thus, if the WHIP session supports ICE of order by the WHIP session. Thus, if the WHIP session supports ICE
restarts, it MUST generate a unique strong entity-tag identifying the restarts, it MUST generate a unique strong entity-tag identifying the
ICE session as per Section 8.8.3 of [RFC9110]. Support of ICE ICE session as per Section 8.8.3 of [RFC9110]. The initial value of
restarts is OPTIONAL. The initial value of the entity-tag the entity-tag identifying the initial ICE session MUST be returned
identifying the initial ICE session MUST be returned in an ETag in an ETag header field in the "201 Created" response to the initial
header field in the "201 Created" response to the initial POST POST request to the WHIP endpoint.
request to the WHIP endpoint.
WHIP clients SHOULD NOT use entity-tag validation when matching a WHIP clients SHOULD NOT use entity-tag validation when matching a
specific ICE session is not required, for example, when initiating a specific ICE session is not required, for example, when initiating a
DELETE request to terminate a session. WHIP sessions MUST ignore any DELETE request to terminate a session. WHIP sessions MUST ignore any
entity-tag value sent by the WHIP client when ICE session matching is entity-tag value sent by the WHIP client when ICE session matching is
not required, as in the HTTP DELETE request. not required, as in the HTTP DELETE request.
Missing or outdated ETags in the PATCH requests from WHIP clients Missing or outdated ETags in the PATCH requests from WHIP clients
will be answered by WHIP sessions as per Section 13.1.1 of [RFC9110] will be answered by WHIP sessions as per Section 13.1.1 of [RFC9110]
and Section 3 of [RFC6585], with a "428 Precondition Required" and Section 3 of [RFC6585], with a "428 Precondition Required"
skipping to change at line 767 skipping to change at line 766
credentials usable by the client in the "201 Created" response to the credentials usable by the client in the "201 Created" response to the
HTTP POST request to the WHIP endpoint URL. HTTP POST request to the WHIP endpoint URL.
A reference to each STUN/TURN server will be returned using the Link A reference to each STUN/TURN server will be returned using the Link
header field [RFC8288] with a "rel" attribute value of "ice-server". header field [RFC8288] with a "rel" attribute value of "ice-server".
The Link target URI is the server URI as defined in [RFC7064] and The Link target URI is the server URI as defined in [RFC7064] and
[RFC7065]. The credentials are encoded in the Link target attributes [RFC7065]. The credentials are encoded in the Link target attributes
as follows: as follows:
* username: If the Link header field represents a Traversal Using * username: If the Link header field represents a Traversal Using
Relays around NAT (TURN) server and the "credential-type" Relays around NAT (TURN) server, then this attribute specifies the
attribute has a "password" value, then this attribute specifies username to use with that TURN server.
the username to use with that TURN server.
* credential: If the "credential-type" attribute is missing or has a
"password" value, this attribute represents a long-term
authentication password, as described in Section 9.2 of [RFC8489].
* credential-type: If the Link header field represents a TURN * credential: This attribute represents a long-term authentication
server, then this attribute specifies how the "credential" password, as described in Section 9.2 of [RFC8489].
attribute value should be used when that TURN server requests
authorization. The default value if the attribute is not present
is "password".
Figure 5 illustrates the Link headers included in a "201 Created" Figure 5 illustrates the Link headers included in a "201 Created"
response, providing the ICE server URLs and associated credentials. response, providing the ICE server URLs and associated credentials.
Link: <stun:stun.example.net>; rel="ice-server" Link: <stun:stun.example.net>; rel="ice-server"
Link: <turn:turn.example.net?transport=udp>; rel="ice-server"; Link: <turn:turn.example.net?transport=udp>; rel="ice-server";
username="user"; credential="myPassword"; username="user"; credential="myPassword"
credential-type="password"
Link: <turn:turn.example.net?transport=tcp>; rel="ice-server"; Link: <turn:turn.example.net?transport=tcp>; rel="ice-server";
username="user"; credential="myPassword"; username="user"; credential="myPassword"
credential-type="password"
Link: <turns:turn.example.net?transport=tcp>; rel="ice-server"; Link: <turns:turn.example.net?transport=tcp>; rel="ice-server";
username="user"; credential="myPassword"; username="user"; credential="myPassword"
credential-type="password"
Figure 5: Example of a STUN/TURN Server's Configuration Figure 5: Example of a STUN/TURN Server's Configuration
NOTE: The naming of both the "rel" attribute value of "ice-server" NOTE: The naming of both the "rel" attribute value of "ice-server"
and the target attributes follows that used in the RTCConfiguration and the target attributes follows that used in the RTCConfiguration
dictionary in Section 4.2.1 of the W3C WebRTC recommendation (see dictionary in Section 4.2.1 of the W3C WebRTC recommendation (see
[W3C.REC-webrtc-20210126]). The "rel" attribute value of "ice- [W3C.REC-webrtc-20250313]). The "rel" attribute value of "ice-
server" is not prepended with the "urn:ietf:params:whip:" so it can server" is not prepended with the "urn:ietf:params:whip:" so it can
be reused by other specifications, which may use this mechanism to be reused by other specifications, which may use this mechanism to
configure the usage of STUN/TURN servers. configure the usage of STUN/TURN servers.
NOTE: Depending on the ICE agent implementation, the WHIP client may NOTE: Depending on the ICE agent implementation, the WHIP client may
need to call the setConfiguration method before calling the need to call the setConfiguration method before calling the
setLocalDescription method with the local SDP offer in order to avoid setLocalDescription method with the local SDP offer in order to avoid
having to perform an ICE restart for applying the updated STUN/TURN having to perform an ICE restart for applying the updated STUN/TURN
server configuration on the next ICE gathering phase. server configuration on the next ICE gathering phase.
skipping to change at line 1421 skipping to change at line 1409
[RFC8836] Jesup, R. and Z. Sarker, Ed., "Congestion Control [RFC8836] Jesup, R. and Z. Sarker, Ed., "Congestion Control
Requirements for Interactive Real-Time Media", RFC 8836, Requirements for Interactive Real-Time Media", RFC 8836,
DOI 10.17487/RFC8836, January 2021, DOI 10.17487/RFC8836, January 2021,
<https://www.rfc-editor.org/info/rfc8836>. <https://www.rfc-editor.org/info/rfc8836>.
[RFC9457] Nottingham, M., Wilde, E., and S. Dalal, "Problem Details [RFC9457] Nottingham, M., Wilde, E., and S. Dalal, "Problem Details
for HTTP APIs", RFC 9457, DOI 10.17487/RFC9457, July 2023, for HTTP APIs", RFC 9457, DOI 10.17487/RFC9457, July 2023,
<https://www.rfc-editor.org/info/rfc9457>. <https://www.rfc-editor.org/info/rfc9457>.
[W3C.REC-webrtc-20210126] [W3C.REC-webrtc-20250313]
Jennings, C., Ed., Castelli, F., Ed., Bostr��m, H., Ed., Jennings, C., Ed., Castelli, F., Ed., Bostr��m, H., Ed.,
and J. Bruaroey, Ed., "WebRTC 1.0: Real-Time Communication and J. Bruaroey, Ed., "WebRTC: Real-Time Communication in
Between Browsers", W3C Recommendation, 8 October 2024, Browsers", W3C Recommendation, 13 March 2025,
<https://www.w3.org/TR/2024/REC-webrtc-20241008/>. Latest <https://www.w3.org/TR/2025/REC-webrtc-20250313/>. Latest
version available at: <https://www.w3.org/TR/webrtc/>. version available at: <https://www.w3.org/TR/webrtc/>.
Acknowledgements Acknowledgements
The authors wish to thank Lorenzo Miniero, Juliusz Chroboczek, Adam The authors wish to thank Lorenzo Miniero, Juliusz Chroboczek, Adam
Roach, Nils Ohlmeier, Christer Holmberg, Cameron Elliott, Gustavo Roach, Nils Ohlmeier, Christer Holmberg, Cameron Elliott, Gustavo
Garcia, Jonas Birme, Sandro Gauci, Christer Holmberg, and everyone Garcia, Jonas Birme, Sandro Gauci, Christer Holmberg, and everyone
else in the WebRTC community that have provided comments, feedback, else in the WebRTC community that have provided comments, feedback,
text, and improvement proposals on the document and contributed early text, and improvement proposals on the document and contributed early
implementations of the spec. implementations of the spec.
 End of changes. 11 change blocks. 
30 lines changed or deleted 18 lines changed or added

This html diff was produced by rfcdiff 1.48.