Re: [MMUSIC] ICE and RTCP host components

Roman Shpount <roman@telurix.com> Tue, 20 October 2015 19:41 UTC

Return-Path: <roman@telurix.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3AB611AD378 for <mmusic@ietfa.amsl.com>; Tue, 20 Oct 2015 12:41:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level:
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
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 IusqxSvV4kCj for <mmusic@ietfa.amsl.com>; Tue, 20 Oct 2015 12:41:16 -0700 (PDT)
Received: from mail-io0-f180.google.com (mail-io0-f180.google.com [209.85.223.180]) (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 C465C1B2A28 for <mmusic@ietf.org>; Tue, 20 Oct 2015 12:41:16 -0700 (PDT)
Received: by ioll68 with SMTP id l68so34302324iol.3 for <mmusic@ietf.org>; Tue, 20 Oct 2015 12:41:16 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=M2sTVb1NvVIEna+H+Fzb1fhVDARnVQn9c507zvx9kcM=; b=dv6muuGt8jUsogr4zcGHmMy6AoJz2oDW2mpft9kcheB1dvo2sUgrprN4CWP5aUcsTT nUoZhmJgdt2tpUx4MC8iDFPsO0nYnYswv4zdpi8Ezz790GBqAc/2V7w+5HR4+/IiYiOT JgyWqq6p3UcxtfKJWVYnU6YuSifO/+8No74vqOYchJZ9yxtfoUfdVqDBO0ypzrFFOpu/ w0Cja5qCjZ3b/B+zrn7Puik78/wX02es3Mke+olULLr2mKjJALuk2VQMkdP9MJKxSw6R hAzNRrUY0FILdd3FABIOSwKWeBcT+nYX6Ux9u1kuDB5/pp8vm9j4JM0czkWdtNYhf1Vj qKsw==
X-Gm-Message-State: ALoCoQkfJLMicbAyAhYphCzSnZOioYdfNA/vwUWASMfRq5tVFTX8ci5fu7zvNsbZDb0P1aHU85L6
X-Received: by 10.107.7.218 with SMTP id g87mr6887505ioi.7.1445370076072; Tue, 20 Oct 2015 12:41:16 -0700 (PDT)
Received: from mail-io0-f171.google.com (mail-io0-f171.google.com. [209.85.223.171]) by smtp.gmail.com with ESMTPSA id rs2sm10464907igb.9.2015.10.20.12.41.15 for <mmusic@ietf.org> (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Oct 2015 12:41:15 -0700 (PDT)
Received: by ioll68 with SMTP id l68so34301585iol.3 for <mmusic@ietf.org>; Tue, 20 Oct 2015 12:41:14 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.107.155.16 with SMTP id d16mr5648748ioe.38.1445370074663; Tue, 20 Oct 2015 12:41:14 -0700 (PDT)
Received: by 10.36.205.67 with HTTP; Tue, 20 Oct 2015 12:41:14 -0700 (PDT)
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B37B7D8B7@ESESSMB209.ericsson.se>
References: <7594FB04B1934943A5C02806D1A2204B37B7AC27@ESESSMB209.ericsson.se> <56266954.3080206@alum.mit.edu> <CAD5OKxtxHwjdaDnmK9LORM9M0YqQQb+-h66dV8C8Lgy8a6WYiA@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B37B7D8B7@ESESSMB209.ericsson.se>
Date: Tue, 20 Oct 2015 15:41:14 -0400
Message-ID: <CAD5OKxt6jG7bmK5KiVu3OFM4pZ8U0L25NnSNT29A0uTBe=x-FA@mail.gmail.com>
From: Roman Shpount <roman@telurix.com>
To: Christer Holmberg <christer.holmberg@ericsson.com>
Content-Type: multipart/alternative; boundary="001a1141bc1ede99e905228e71bf"
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/9mTnEaHS8ll04ks1vRwwzvgFHKM>
Cc: "mmusic@ietf.org" <mmusic@ietf.org>, Paul Kyzivat <pkyzivat@alum.mit.edu>
Subject: Re: [MMUSIC] ICE and RTCP host components
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.15
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: Tue, 20 Oct 2015 19:41:19 -0000

On Tue, Oct 20, 2015 at 2:03 PM, Christer Holmberg <
christer.holmberg@ericsson.com> wrote:

> >I almost feel like making ICE required for anything that implements
> BUNDLE is the simplest >solution.
>
>
>
> Note that this is not a BUNDLE specific issue.
>
>
>
I know this is not BUNDLE specific. This is something that has been broken
for a long time. Essentially anything that needs to interoperate with end
points behind NAT MUST support SDP rtcp attribute and, ideally, ICE.
Otherwise RTCP flow will not be established in a large number of cases.
There is no workaround for this issue. SDP rtcp attribute was the
workaround designed to deal with this issue.

As far as ICE implementations are concerned, offerer should allocate for
RTCP rtp+1 port on the same address as RTP and use this port in host RTCP
candidate.

If TURN server is configured, get relay and reflexive candidates for RTP
and RTCP. Put relay candidate for RTP in the m= and c= lines, relay
candidate for RTCP in SDP rtcp attribute. Keep in mind that in this case
rtcp SDP attribute would have port+1 compared to port in m= line and,
optionally the same address as c= line. Even though such SDP rtcp
attribute is required by ICE RFC, it is really optional for call setup.

If only STUN server is configured, get a reflexive candidates, and put the
reflexive candidate for RTP in the m= and c= lines, reflexive candidate for
RTCP in SDP rtcp attribute. In this case port in SDP rtcp candidate is most
likely not going to be port+1 from the m= line and address in SDP rtpc
candidate can be different from address in c= line. Without SDP rtcp
attribute no RTCP flow will be established if remote party does not support
ICE. If remote party does not support SDP rtcp attribute or ICE, no RTCP
flow will be established. There is no workaround for this issue.

Finally, if neither TURN or STUN server are configured, offerer should put
host address in the c= line, host port in m= line, and rtp+1 and optionally
host address in the SDP rtcp attribute. Once again, even though such SDP
rtcp attribute is required by ICE RFC, it is really optional for call
setup..

It might make sense to explain that there is a use case which will never
work (no TURN server and remote end point which does not support either ICE
or rtcp attribute). In practice, without TURN server, there are a lot of
call flows which do not work (restricted NAT, TCP only firewalls), so this
is not really a problem.
_____________
Roman Shpount