rfc9429v6.txt   rfc9429.txt 
Internet Engineering Task Force (IETF) J. Uberti Internet Engineering Task Force (IETF) J. Uberti
Request for Comments: 9429 Request for Comments: 9429
Obsoletes: 8829 C. Jennings Obsoletes: 8829 C. Jennings
Category: Standards Track Cisco Category: Standards Track Cisco
ISSN: 2070-1721 E. Rescorla, Ed. ISSN: 2070-1721 E. Rescorla, Ed.
Mozilla Windy Hill Systems, LLC
February 2024 April 2024
JavaScript Session Establishment Protocol (JSEP) JavaScript Session Establishment Protocol (JSEP)
Abstract Abstract
This document describes the mechanisms for allowing a JavaScript This document describes the mechanisms for allowing a JavaScript
application to control the signaling plane of a multimedia session application to control the signaling plane of a multimedia session
via the interface specified in the W3C RTCPeerConnection API and via the interface specified in the W3C RTCPeerConnection API and
discusses how this relates to existing signaling protocols. discusses how this relates to existing signaling protocols.
skipping to change at line 1785 skipping to change at line 1785
The first step in generating an initial offer is to generate session- The first step in generating an initial offer is to generate session-
level attributes, as specified in [RFC4566], Section 5. level attributes, as specified in [RFC4566], Section 5.
Specifically: Specifically:
* The first SDP line MUST be "v=0" as defined in [RFC4566], * The first SDP line MUST be "v=0" as defined in [RFC4566],
Section 5.1. Section 5.1.
* The second SDP line MUST be an "o=" line as defined in [RFC4566], * The second SDP line MUST be an "o=" line as defined in [RFC4566],
Section 5.2. The value of the <username> field SHOULD be "-". Section 5.2. The value of the <username> field SHOULD be "-".
The <sess-id> MUST be representable by a 64-bit signed integer, The <sess-id> MUST be representable by a 64-bit signed integer,
and the value MUST be less than 2^63-1. This is to ensure that and the value MUST be less than (2^63)-1. This is to ensure that
the <sess-id> value, when expressed as a string, is always a non- the <sess-id> value, when expressed as a string, is always a non-
negative integer, as some SDP parsers may fail to parse a negative negative integer, as some SDP parsers may fail to parse a negative
<sess-id>. It is RECOMMENDED that the <sess-id> be constructed by <sess-id>. It is RECOMMENDED that the <sess-id> be constructed by
generating a 64-bit quantity with the highest bit set to zero and generating a 64-bit quantity with the highest bit set to zero and
the remaining 63 bits being cryptographically random. The value the remaining 63 bits being cryptographically random. The value
of the <nettype> <addrtype> <unicast-address> tuple SHOULD be set of the <nettype> <addrtype> <unicast-address> tuple SHOULD be set
to a non-meaningful address, such as IN IP4 0.0.0.0, to prevent to a non-meaningful address, such as IN IP4 0.0.0.0, to prevent
leaking a local IP address in this field; this problem is leaking a local IP address in this field; this problem is
discussed in [RFC8828]. As mentioned in [RFC4566], the entire discussed in [RFC8828]. As mentioned in [RFC4566], the entire
"o=" line needs to be unique, but selecting a random number for "o=" line needs to be unique, but selecting a random number for
skipping to change at line 4484 skipping to change at line 4484
JSEP implementation MUST be prepared for the JavaScript to pass in JSEP implementation MUST be prepared for the JavaScript to pass in
bogus data instead. bogus data instead.
Conversely, the application programmer needs to be aware that the Conversely, the application programmer needs to be aware that the
JavaScript does not have complete control of endpoint behavior. One JavaScript does not have complete control of endpoint behavior. One
case that bears particular mention is that editing ICE candidates out case that bears particular mention is that editing ICE candidates out
of the SDP or suppressing trickled candidates does not have the of the SDP or suppressing trickled candidates does not have the
expected behavior: implementations will still perform checks from expected behavior: implementations will still perform checks from
those candidates even if they are not sent to the other side. Thus, those candidates even if they are not sent to the other side. Thus,
for instance, it is not possible to prevent the remote peer from for instance, it is not possible to prevent the remote peer from
learning an application's public IP address by removing server- learning an endpoint's public IP address by removing server-reflexive
reflexive candidates. Applications that wish to conceal their public candidates. Endpoints that wish to conceal their public IP address
IP address MUST instead configure the ICE agent to use only relay MUST instead configure the ICE agent to use only relay candidates.
candidates.
9. IANA Considerations 9. IANA Considerations
This document has no IANA actions. This document has no IANA actions.
10. References 10. References
10.1. Normative References 10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
skipping to change at line 4813 skipping to change at line 4812
Nandakumar, S. and C. F. Jennings, "Annotated Example SDP Nandakumar, S. and C. F. Jennings, "Annotated Example SDP
for WebRTC", Work in Progress, Internet-Draft, draft-ietf- for WebRTC", Work in Progress, Internet-Draft, draft-ietf-
rtcweb-sdp-14, 17 December 2020, rtcweb-sdp-14, 17 December 2020,
<https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb- <https://datatracker.ietf.org/doc/html/draft-ietf-rtcweb-
sdp-14>. sdp-14>.
[TS26.114] 3GPP, "3rd Generation Partnership Project; Technical [TS26.114] 3GPP, "3rd Generation Partnership Project; Technical
Specification Group Services and System Aspects; IP Specification Group Services and System Aspects; IP
Multimedia Subsystem (IMS); Multimedia Telephony; Media Multimedia Subsystem (IMS); Multimedia Telephony; Media
handling and interaction (Release 18)", 3GPP TS 26.114 handling and interaction (Release 18)", 3GPP TS 26.114
V18.4.0, September 2023, V18.6.0, March 2024,
<https://www.3gpp.org/DynaReport/26114.htm>. <https://www.3gpp.org/DynaReport/26114.htm>.
[W3C.webrtc] [W3C.webrtc]
Jennings, C., Ed., Castelli, F., Ed., Boström, H., Ed., Jennings, C., Ed., Castelli, F., Ed., Boström, H., Ed.,
and J-I. Bruaroey, Ed., "WebRTC: Real-time Communication and J-I. Bruaroey, Ed., "WebRTC: Real-time Communication
Between Browsers", W3C Recommendation, March 2023, Between Browsers", W3C Recommendation, March 2023,
<https://www.w3.org/TR/2023/REC-webrtc-20230306/>. <https://www.w3.org/TR/2023/REC-webrtc-20230306/>.
Appendix A. SDP ABNF Syntax Appendix A. SDP ABNF Syntax
skipping to change at line 4912 skipping to change at line 4911
Email: justin@uberti.name Email: justin@uberti.name
Cullen Jennings Cullen Jennings
Cisco Cisco
400 3rd Avenue SW 400 3rd Avenue SW
Calgary AB T2P 4H2 Calgary AB T2P 4H2
Canada Canada
Email: fluffy@iii.ca Email: fluffy@iii.ca
Eric Rescorla (editor) Eric Rescorla (editor)
Mozilla Windy Hill Systems, LLC
Email: ekr@rtfm.com Email: ekr@rtfm.com
 End of changes. 5 change blocks. 
9 lines changed or deleted 8 lines changed or added

This html diff was produced by rfcdiff 1.48.