Re: [MMUSIC] Default proto transport in JSEP

Roman Shpount <roman@telurix.com> Mon, 19 November 2018 19:31 UTC

Return-Path: <roman@telurix.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A363F1292F1 for <mmusic@ietfa.amsl.com>; Mon, 19 Nov 2018 11:31:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.88
X-Spam-Level:
X-Spam-Status: No, score=-1.88 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, T_KAM_HTML_FONT_INVALID=0.01, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=telurix-com.20150623.gappssmtp.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id F8bTa0WGxcxb for <mmusic@ietfa.amsl.com>; Mon, 19 Nov 2018 11:30:59 -0800 (PST)
Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1795412F1AB for <mmusic@ietf.org>; Mon, 19 Nov 2018 11:30:59 -0800 (PST)
Received: by mail-pl1-x629.google.com with SMTP id t13so12072239ply.13 for <mmusic@ietf.org>; Mon, 19 Nov 2018 11:30:58 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telurix-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pLdIaVyIJHM79C49feJxjYKe6UnBUKcZOx2JZFif84Y=; b=DjSm4nRXEfEBf6/tK4UABoI2osCPhWc7XJkcHpcIKh44QwRww+MjG8uHjwA14U7KeB 90ErHlMKEaKJavgG4Lydh3PjkC8ON69D3fANrPpeMc+HUimJAtn0xVwtUuBh7g84x1V5 PLOrv9ChC4BWGTqs17Ldahlyi99lq6S88h9XNGbTm0YkYlv25QPiYWssYL5uvV5IkCtr tep/p3F1efou8xAIiUlabEBnt3hcOwJf3DqaxttKeEGr93ksnz3O2VtvgtHAm5fuxfRe PC63I4eKBbeFFTtvjfDtRzZucgsY0cKp94aAPmongFAgTQuA1zqYepeUS7X3U6id1DKS GlMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=pLdIaVyIJHM79C49feJxjYKe6UnBUKcZOx2JZFif84Y=; b=mH9hhYThZRM2VtPAKID8GAq1uX8auD6RKLdcbCrxutAlBTvwl+H+RJ7+IXfpf0aQ/E B0eROR3IB4T7U3za30kdEfZrVE6j13X8kB/grNVFKC9jXxCRQ06igBgM5OpeoTW6KqEk 5A/o06ywuM2XR2Du1iL3/cQmizv4gTQ9ehFbSCZe2pRRXNwR6Zyc7iNiTphkZcdd2GyM 8tRvmWIH2KYv/g0gRFOuYK4zd9pn8YNKY5as/3q4rgwq0niLaJnDB2CNjto01fHOM9Z2 keivuJWy+jZCEXnwvpSAUa353cgGnd2oV3lJotlH5+p7JtzyTGaKrS5bxpZRPt1juo3/ cwwg==
X-Gm-Message-State: AGRZ1gJetwUuR0EpQztXkg2VQ6Txvr5ZcmLycCAY9JqRMmKkKoNHXljA fw6JSU1SK9ECHYtcedcJ2Sogsg==
X-Google-Smtp-Source: AJdET5eOGbmMVFF1dJB9npxmjz5lnj8NjbqMS8xbphoh8ghWA/sDXtj5swqKq2DMkQH+KzSuuHHU4w==
X-Received: by 2002:a17:902:868b:: with SMTP id g11-v6mr20696429plo.96.1542655858579; Mon, 19 Nov 2018 11:30:58 -0800 (PST)
Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com. [209.85.210.176]) by smtp.gmail.com with ESMTPSA id b2sm55729977pfm.3.2018.11.19.11.30.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Nov 2018 11:30:57 -0800 (PST)
Received: by mail-pf1-f176.google.com with SMTP id 64so10849325pfr.9; Mon, 19 Nov 2018 11:30:57 -0800 (PST)
X-Received: by 2002:a62:1b50:: with SMTP id b77mr24339172pfb.36.1542655857615; Mon, 19 Nov 2018 11:30:57 -0800 (PST)
MIME-Version: 1.0
References: <CA+9kkMADnZJBaV0hfLuwGU0bGBEP5tCPZ=8Zd_85Dgzi37ghAQ@mail.gmail.com> <CAD5OKxsNFFmER__H0+5Mzts58yn9cWLMEADhSnLR4nreKD9WAQ@mail.gmail.com> <CAOJ7v-1KPsrVzsOm4VoVA5MUD3+fRtwzoeX-K3AMwp5P7yh86A@mail.gmail.com>
In-Reply-To: <CAOJ7v-1KPsrVzsOm4VoVA5MUD3+fRtwzoeX-K3AMwp5P7yh86A@mail.gmail.com>
From: Roman Shpount <roman@telurix.com>
Date: Mon, 19 Nov 2018 14:30:52 -0500
X-Gmail-Original-Message-ID: <CAD5OKxvjNxx3K0F3VHC+0Q=nX4_avP7GY3Jx29oDRNfMnZtEgw@mail.gmail.com>
Message-ID: <CAD5OKxvjNxx3K0F3VHC+0Q=nX4_avP7GY3Jx29oDRNfMnZtEgw@mail.gmail.com>
To: Justin Uberti <juberti@google.com>
Cc: RTCWeb IETF <rtcweb@ietf.org>, mmusic WG <mmusic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000676ab2057b098ec5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/UNdzHgSXNn67LnkJD4y8XGjj6Hw>
Subject: Re: [MMUSIC] Default proto transport in JSEP
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mmusic/>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 19 Nov 2018 19:31:01 -0000

On Mon, Nov 19, 2018 at 1:35 PM Justin Uberti <juberti@google.com> wrote:

> IIRC, one reason JSEP chose the behavior described is because
> 5245-compliant implementations would declare an ICE mismatch if we used a
> bogus address/port in the c=/m= lines. Is this not a problem?
>

RFC 5245 compatibility is a problem, but I assume we were past this point
and was trying to propose something that at least is going to be compatible
with ice-sip-sdp. BTW, Edge browser with RTCPeerConnection-shim is already
putting 0.0.0.0 and port 9 in all session descriptions:

v=0 o=thisisadapterortc 3331475186201587 0 IN IP4 127.0.0.1 s=- t=0 0
a=group:BUNDLE mzxjdusv69 a=ice-options:trickle m=audio 9 UDP/TLS/RTP/SAVPF
104 102 0 8 103 97 13 118 101 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0
(codec parameters removed for clarity)
a=maxptime:100 a=rtcp-mux a=extmap:1
http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=extmap:3 http://skype.com/experiments/rtp-hdrext/fast_bandwidth_feedback#version_2
a=ice-ufrag:x+3s a=ice-pwd:Re8NpJqQfXVtpbOg7oBgmoHL a=setup:actpass
a=fingerprint:sha-256
14:B5:2D:3D:0E:CE:E9:F1:F7:E3:56:A6:55:DD:23:BD:1A:65:F0:FE:64:B5:78:30:FA:64:06:9B:F0:8B:D2:3D
a=mid:mzxjdusv69 a=sendrecv a=msid:6E374666-5BBB-43E9-B1C2-89312C920723
BD9F838A-5483-42E5-99A7-A861999D5C0A a=ssrc:1001
msid:6E374666-5BBB-43E9-B1C2-89312C920723
BD9F838A-5483-42E5-99A7-A861999D5C0A a=ssrc:1001 cname:m4gynh3dc1
a=rtcp-rsize a=candidate:1 1 UDP 2130706431 172.129.12.1 63862 typ host
ufrag x+3s a=candidate:2 1 UDP 2130705919 10.7.18.135 55458 typ host ufrag
x+3s a=candidate:3 1 TCP 1684798463 172.129.12.1 63862 typ srflx raddr
172.29.182.1 rport 63862 tcptype active ufrag x+3s a=end-of-candidates

If RFC 5245 compatibility is required, it means offer/answer exchange with
no trickle, session refresh after nomination completion, and using default
candidate protocol, address and port in c= and m= line. No trickle and
session refresh can be achieved through existing API. Setting protocol,
address, and port in c= and m= line is harder and will require SDP mangling.

When ICE-SIP-SDP and related protocols were discussed in mmusic, in order
to be RFC 5245 compatible, the plan was to:
1. Use protocol, address, and port of the default candidate in c= and m=
lines
2. In order to avoid protocol mismatch during offer/answer, require in
specific protocol specifications, such as sctp-sdp, that end points should
implement UDP based transport and use it as default transport during ICE
restart in both offer and answer
3. In subsequent offers, where only a single candidate is present, use
protocol, address and port of this candidate in c= and m= lines

This means the same protocol should always be used for the specific m= line
during offer/answer, but it can change between offer/answer exchanges. For
instance, m= line which was UDP/DTLS/SCTP during the initial exchange, can
become TCP/DTLS/SCTP in subsequent exchange, and then change back to
UDP/DTLS/SCTP when ICE restart is initiated. It was assumed that it should
not be a problem but JSEP is currently trying to overwrite this. I
understand this is ugly, but this was the only thing we came up with to
keep things compatible with existing implementations.

Regards,
_____________
Roman Shpount