Subject: Re: [MMUSIC] [rtcweb] Default proto transport in JSEP

From: Christer Holmberg <[email-masked]>
Date: Mon, 3 Dec 2018 20:58:11 +0000

Hi,

I am jumping late into the circle, but I share Roman's concern regarding the suggested change to 5.2.2. I think the WHOLE m= line (including the protocol) shall match the currently used properties. You may also end up having SDP attributes that are not defined the for the indicated protocol (since you are using another protocol). That is asking for interoperability problems, in my opinion.

I've probably missed it, but what is the "catastrophic flaw" (to use Adam's words) that would require this change, and misalign the JSEP ICE procedures from all the documents Roman listed?

Regards,

Christer

________________________________
From: rtcweb <[email-masked]> on behalf of Roman Shpount <[email-masked]>
Sent: Wednesday, November 28, 2018 8:41 PM
To: Adam Roach - SIPCORE Chair
Cc: RTCWeb IETF; mmusic WG
Subject: Re: [rtcweb] [MMUSIC] Default proto transport in JSEP

Hi Adam,

On Wed, Nov 28, 2018 at 1:22 PM Adam Roach <[email-masked]<mailto:[email-masked]>> wrote:

On 11/28/18 10:57 AM, Roman Shpount wrote:
On Wed, Nov 28, 2018 at 11:38 AM Cullen Jennings <[email-masked]<mailto:[email-masked]>> wrote:
On Nov 27, 2018, at 4:46 PM, Roman Shpount <[email-masked]<mailto:[email-masked]>> wrote:

 I suggest to update JSEP section 5.1.2 to match the rest of the documents to say that "UDP/TLS/RTP/SAVPF" proto MUST be used during ICE restart. When ICE restart is not in progress, "UDP/TLS/RTP/SAVPF" proto MUST be used if default (only) candidate is a UDP candidate and "TCP/TLS/RTP/SAVPF" proto MUST be used if default (only) candidate is TCP candidate.

I don’t see any real befits to implementations to this change and I don’t think the rtcweb consensus was around the currently solution. Do you see some advantage to implementations to this?

This is what every other document related to ICE, including JSEP section 5.2.2 currently specifies. It was also consensus in MMUSIC. I think RTCWEB need a really good reason why it needs to be different.

It would probably help clarify things if you quoted the parts of the document that you think are in conflict. I can't find any explicit <proto> field handling in 5.2.2.

 I have mentioned this already in the previous message, but I guess this got lost in the traffic.

JSEP-25 in section 5.2.2 says (https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-25#section-5.2.2):

Each "m=" and c=" line MUST be filled in with the port, protocol, and address of the default candidate for the m= section, as described in [I-D.ietf-mmusic-ice-sip-sdp], Section 3.2.1.2.

At the same time section 5.1.2 says (https://tools..ietf.org/html/draft-ietf-rtcweb-jsep-25#section-5.1.2<https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-25#section-5.1.2>):

For media m= sections, JSEP implementations MUST support the "UDP/TLS/RTP/SAVPF" profile specified in [RFC5764], and MUST indicate this profile for each media m= line they produce in an offer. For data m= sections, implementations MUST support the "UDP/DTLS/SCTP" profile and MUST indicate this profile for each data m= line they produce in an offer.

So, section 5.2.2 says m= line should be filled with currently used protocol, which means "TCP/TLS/RTP/SAVPF" or "TCP/DTLS/SCTP" if default candidate is TCP based, but section 5.1.2 says it must be "UDP/TLS/RTP/SAVPF" or "UDP/DTLS/SCTP", even if default candidate is TCP based. I thought that section 5.2.2, since it is more specific, overwrites 5.1.2, which I assumed only applies to ICE restart. Authors disagree and want to update the document.

In terms of changing technical aspects of JSEP: the only reason the document is out of the RFC Editor's queue right now is to address issues arising from rationalizing the reference to RFC 8445 within Cluster 238. This is not an opportunity to re-litigate previously settled consensus decisions. Technical issues such as the one at hand should have been raised during WG development, WG last call, or -- in extremis, since you're a regular RTCWEB participant -- during IETF last call. It's up to the chairs what to allow, but I wouldn't expect anything other than catastrophic flaws to be open for change at this time.

I am not the one who opened this can of worms. I am fine if the current draft version is not changed. This is why I did not comment during the WG last call. Draft authors are introducing the new change in https://github.com/rtcweb-wg/jsep/pull/857, which makes JSEP incompatible with ice-sip-sdp. I oppose this change. If the group considers that a change to clarify things is necessary, I would suggest that section 5.1.2 should be changed instead to that it only applies during ICE restart, so that JSEP is compatible with ice-sip-sdp.

Regards,
______________
Roman Shpount

---

From: Christer Holmberg <[email-masked]>
Date: Mon, 3 Dec 2018 21:01:33 +0000

Hi,

In addition, even from a pure WebRTC perspective, there is no guarantee that both endpoints are implementing JSEP, so any WebRTC-specific ICE modification would probably have to be done in a separate document.

Regards,

Christer

________________________________
From: rtcweb <[email-masked]> on behalf of Christer Holmberg <[email-masked]>
Sent: Monday, December 3, 2018 10:58 PM
To: Roman Shpount; Adam Roach - SIPCORE Chair
Cc: RTCWeb IETF; mmusic WG
Subject: Re: [rtcweb] [MMUSIC] Default proto transport in JSEP

Hi,

Regards,

Christer

Hi Adam,

Regards,
______________
Roman Shpount

---

From: Christer Holmberg <[email-masked]>
Date: Tue, 4 Dec 2018 07:04:49 +0000

Hi,

Also, as far as I understand, JSEP only defines an API, not a network protocol, so if you want to be standards compliant on the wire the JS app would have to modify the SDP before sending it to the network, and I do not think we want that.

Regards,

Christer

Sent: Monday, December 3, 2018 11:01 PM

Hi,

Regards,

Christer

Hi,

Regards,

Christer

Hi Adam,

Regards,
______________
Roman Shpount

---

From: Roman Shpount <[email-masked]>
Date: Tue, 4 Dec 2018 16:21:31 -0500

Hi,

On Tue, Dec 4, 2018 at 2:04 AM Christer Holmberg <
[email-masked]> wrote:

> Also, as far as I understand, JSEP only defines an API, not a network
> protocol, so if you want to be standards compliant on the wire the JS app
> would have to modify the SDP before sending it to the network, and I do not
> think we want that.
>
>
I generally agree. JSEP is API specification and a signaling profile which
specifies in more detail offer/answer procedures which are used by JSEP
compliant end points. So far, JSEP was compliant with existing procedures,
but it made some things more strict. In that sense, using UDP based
protocols during ICE restart is totally within JSEP scope. Changing RFC
5245 and other related ICE documents, including ice-sip-sdp, in
non-backwards-compatible manner by changing procedures during subsequent
offer/answer exchanges which do not change ICE settings should not be
within this document scope. Furthermore,  it seems to be totally
unnecessary except for procedural and editorial reasons.

Regards,
_____________
Roman Shpount