Re: [MMUSIC] Multi-party transport in draft-hellstrom-mmusic-multi-party-rtt-00.txt

Lorenzo Miniero <lorenzo@meetecho.com> Wed, 18 December 2019 10:09 UTC

Return-Path: <lorenzo@meetecho.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 59E99120071 for <mmusic@ietfa.amsl.com>; Wed, 18 Dec 2019 02:09:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=aruba.it
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 48yyeB-3RIs0 for <mmusic@ietfa.amsl.com>; Wed, 18 Dec 2019 02:09:01 -0800 (PST)
Received: from smtpcmd13146.aruba.it (smtpcmd13146.aruba.it [62.149.156.146]) by ietfa.amsl.com (Postfix) with ESMTP id C423C120024 for <mmusic@ietf.org>; Wed, 18 Dec 2019 02:08:59 -0800 (PST)
Received: from lminiero ([93.44.36.221]) by smtpcmd13.ad.aruba.it with bizsmtp id fN7v2101C4mGZ9p01N7vxZ; Wed, 18 Dec 2019 11:07:57 +0100
Date: Wed, 18 Dec 2019 11:07:54 +0100
From: Lorenzo Miniero <lorenzo@meetecho.com>
To: Gunnar Hellström <gunnar.hellstrom@omnitor.se>
Cc: Christer Holmberg <christer.holmberg@ericsson.com>, "mmusic@ietf.org" <mmusic@ietf.org>
Message-ID: <20191218110754.05ea4b32@lminiero>
In-Reply-To: <51f31590-cc68-983e-5c61-88c0d6d0878c@omnitor.se>
References: <8673BEBE-C66C-4264-A327-08ABCF4A31E1@ericsson.com> <51f31590-cc68-983e-5c61-88c0d6d0878c@omnitor.se>
Organization: Meetecho
X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-redhat-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aruba.it; s=a1; t=1576663678; bh=o6dNCPm4eMuBxVdrylz5e5SDojNQbnnmJ9jhAtIRXS4=; h=Date:From:To:Subject:MIME-Version:Content-Type; b=JOkT9nOzybGSzU38FzLPLlRpC6K8X/xoMwTdahWb2TU1eMT8kxwBmnXd8NUiJ6P6k RRXxl+cecVjN+NMpXG9k+7ORU/683qg0ml320ivkUzfVc3dUUaZtJpgD/SCF8ppFqt MmuMhNA8+Pv1slOyB58zHUvfOw3HKRWwtlQsDtTVo10Onlwf5hBhqP6IveH8g3DxuK 0X8otcZy1+9UNgcvVsBY6nv+s702ePCz1ceF+LniIhdK1djqLgNIHaaAHotQ/4+bID JZXQgOoy7CmSoHt0ZyvhiufrURRqZ2njLek6EZA1wLKYpaHnyYDaE2fmmFhd11/sn+ wWm7KIj0w3VxA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/V4ORuN4ktJcvRGy81uyyLukM6es>
Subject: Re: [MMUSIC] Multi-party transport in draft-hellstrom-mmusic-multi-party-rtt-00.txt
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: Wed, 18 Dec 2019 10:09:05 -0000

Hi all,

apologies if I'm chiming in only now. I've recently started working on
an (open source) integration between SIP RTT and WebRTC: I already
exchanged some thoughts with Gunnar in private, but I plan to write a
post to introoduce the effort later today.

Since the effort has been on a server side component that acts like a
gateway, in this context, how to deal with multiparty is indeed
something I'm interested about, so I've added some comments inline.


On Tue, 17 Dec 2019 22:53:31 +0000
Gunnar Hellström <gunnar.hellstrom@omnitor.se> wrote:

> Hi Christer,
> 
> Den 2019-12-17 kl. 09:01, skrev Christer Holmberg:
> Hi,
> 
> Before we decide on support indicators, we need to decide on how we
> are going to implement multi-party RTT. Yes, these discussions at
> least need to go in parallel. Note that I switched subject now when
> the topic is multi-party RTT transport alternatives.
> 
> Section 4 specifies different alternatives. Are we going to specify
> all of those, or only a subset?
> 
> Related to Section 4, it would be nice with an SDP example for each
> alternative.
> 
>  The problem so far has been that it has been said that multi-party
> RTT can be arranged with regular RTP methods, and that has provided
> too wide freedom of choice.
> 
> So, I want to eventually change the draft to elaborate on either one
> common alternative for real-time transport for both SIP/RTP and
> WebRTC, or one each for these two environments. The other
> alternatives may be briefly mentioned in a background chapter or
> deleted.
> 
> So, let us go through the alternatives, and try to look at both
> chapter 4 and 5. That is both SIP/RTP and WebRTC.
> 
> 1. Control code in the T.140 stream.
> 
> 4.3<https://tools.ietf.org/html/draft-hellstrom-mmusic-multi-party-rtt-00#section-4.3>.
>  RTP Mixer indicating participants by a control code in the stream
> 
> and
> 5.2<https://tools.ietf.org/html/draft-hellstrom-mmusic-multi-party-rtt-00#section-5.2>.
>  RTT bridging in WebRTC with one common data channel
> 
> Both build on the same principle. The presentation protocol T.140 is
> extendable. New one letter  function codes can be defined and sent
> together with a parameter framed by the control codes called SOS and
> ST as defined in ISO 6429. So, we could define (or rather ask ITU-T
> SG26 to define) a function code "c" followed by a string uniquely
> identifying the source of the following text (or rather T140blocks).
> The data for each transmission request from the mixer should start
> with the SOS,c,source,ST code as soon as more than two parties are
> involved in the session. The receiving party need to scan incoming
> T140blocks and direct the received text to the proper area for
> presentation of text from each source in one of the suitable styles
> for RTT presentation (see chapter 9).
> 
> For 4.3, the RTP variant, I don't think we need to prescribe any more
> SDP than a regular one stream RTT plus an indication of multi-party
> RTT capability.
> 
> Example, combining this alternative with capability negotiation 7.3
> 
> Offer
>  m=text 11000 RTP/AVP 100 98
>       a=rtpmap:98 t140/1000
>       a=rtpmap:100 red/1000
>       a=fmtp:100 98/98/98
>       a=rtt-mixer:t140-mixer
> 
> Answer of a capable party
>  m=text 12000 RTP/AVP 100 98
>       a=rtpmap:98 t140/1000
>       a=rtpmap:100 red/1000
>       a=fmtp:100 98/98/98
>       a=rtt-mixer:t140-mixer
> The parties can start exchanging multi-party text in one stream with
> T.140 source indications.
> 
> Answer of an uncapable party
>  m=text 12000 RTP/AVP 100 98
>       a=rtpmap:98 t140/1000
>       a=rtpmap:100 red/1000
>       a=fmtp:100 98/98/98
> 
> 
> The mixer can start sending multi-party text prepared for
> presentation to a multi-party unaware UA according to chapter 10 and
> Appendix A, providing a lower functionality fixed view presentation.
> 
> This method can be combined with multi-party conferencing control for
> SIP as said in the beginning of chapter 7
> 
> 
> "A method for detection of conference-awareness for centralized SIP
> conferencing in general is specified in RFC
> 4579<https://tools.ietf.org/html/rfc4579>
> [RFC4579<https://tools.ietf.org/html/rfc4579>]. The focus sends the
> "isfocus" feature tag in a SIP Contact header. This causes the
> conference-aware UA to subscribe to conference notifications from the
> focus. The focus then sends notifications to the UA about entering
> and disappearing conference participants and their media
> capabilities. The information is carried XML-formatted in a
> 'conference-info' block in the notification according to
> RFC<https://tools.ietf.org/html/rfc4575>
> 4575<https://tools.ietf.org/html/rfc4575>. The mechanism is described
> in detail in RFC 4575<https://tools.ietf.org/html/rfc4575>
> [RFC4575<https://tools.ietf.org/html/rfc4575>]."
> 
> 
> But I think now that we do not need to make us so dependent on that
> mechanism. Any way to introduce and delete parties in the conference
> may be used.  The draft is currently too much tied to use of the RFC
> 4579 / RFC 4575 procedure.
> 
> 
> For 5.2, the WebRTC case with T.140 source marked text, according to
> draft-ietf-mmusic-t140-usage-data-channel the sdp would be
> 
>  Offer:
> 
>        m=application 1400 UDP/DTLS/SCTP webrtc-datachannel
>        c=IN IP6 2001:db8::3
>        a=max-message-size:1000
>        a=sctp-port 5000
>        a=dcmap:2 label="ACME customer service";subprotocol="t140"
>        a=dcsa:2 rtt-mixer:t140-mixer
> 
>    Answer from a capable party:
> 
>        m=application 2400 UDP/DTLS/SCTP webrtc-datachannel
>        c=IN IP6 2001:db8::1
>        a=max-message-size:1000
>        a=sctp-port 6000
>        a=dcmap:2 label="ACME customer service";subprotocol="t140"
>        a=dcsa:2 rtt-mixer:t140-mixer
> 
> 
> The parties can start exchanging multi-party text in one stream with
> T.140 source indications.
> 
> 
> (and if the negotiation does not find multi-party capability for both
> parties, then the mixer can start sending according to chapter 10 and
> Appendix A.)
> 
> The exact form of the multi-party capability indication should go
> into the negotiation discussion belonging to chapter 7. (maybe it
> should be a new fmtp - parameter instead of a new sdp attribute if
> using sdp )
> 
> Pros:
> 
> Equal handling for SIP/RTP and WebRTC
> Simple session and stream establishment.
> 
> Cons:
> 
> The mixer need to manipulate the T.140 stream.
> In SIP/RTP, if more than 3 consecutive packets are lost, the source
> of the loss is not known, and an indication of possible loss needs to
> be inserted in some other place than in the stream that had loss. The
> mixer needs to be allowed to decrypt and encrypt the stream.
> 
> 
> I need to stop here and describe the other alternatives another day.
> 


I'm personally not fond of the idea of the new control code. First of
all, it would require the mixer to indeed terminate the RTT session,
which means end-to-end encryption wouldn't be possible. Besides, with
data channels and the flexibility they provide (e.g., via the label you
can negotiate in the related draft), you don't really need the extra
inband control code to discriminate sessions.

I did read the multiparty document, and did have some opitions going
through the alternatives, so I thought I'd share them quickly here
(apologies to Gunnar if I'm repeating what the draft already says, or
if I'm completely misunderstanding some concepts, as I'm indeed new to
the specification as a whole):

	1. Section 4.1 introduces the usage of different SSRCs for
	different participants, which does seem like a good option to
	me: SSRCs would indeed provide the info required to demultiplex
	and relay participants without having to look at the payload,
	and would be very easy to map to labels when a translation
	to/from a WebRTC session is needed. There is indeed the problem
	of how you advertise those SSRCs, which brings back painful
	memories of the Plan B vs. Unified Plan fight in WebRTC: this
	section suggests a single m-line (à-la Plan B, I believe),
	which has some drawbackas; different participants may
	use different approaches (e.g., some may be using red, other
	t140, and payload types may differ) which indeed complicates
	the SDP negotiation, especially if the mixer is supposed to
	just relay those streams and not terminate them.

	2. Section 4.2 suggests using a shared SSRC, and using CSRC to
	mention participants. Again, the need for decrypting the
	traffic is problematic. Besides, I'm not sure detecting packet
	loss would be trivial as the document states: if the SSRC is
	shared, so is the timestamp/sequence number space, which means
	that it would be problematic, if not downright impossible, to
	detect packet losses for a specific participant at the source,
	considering sequence numbers originated by the mixer may be
	increasing sequentially with no gaps in between. Probably I'm
	missing something obvious in the scenario?

	3. Section 4.3 is where the new control code Gunnar described
	is introduced, and I already shared my view on why I'm not
	particularly fond of the idea.

	4. Section 4.4 describes a full mesh, which does work but is
	indeed more "verbose", and requires multiple sessions to take
	place, and may be a bit overkill. That said, one of the pros
	the document suggests is that this should be possible with most
	RTP implementations, which isn't to be ignored: I'd consider
	this a good backup when dealing with participants unaware of
	whatever method will be chosen, possibly establishing the
	multiple sessions with the mixer itself, though, rather than
	the other participants themselves.

	5. Section 4.5 documents the approach where multiple RTP
	sessions are negotiated, one per participant, I guess via
	separate m-lines. This is indeed a variant of 4.1 which again
	brings back the Plan B vs. Unified Plan discussion that
	happened in WebRTC, where the former signalled multiple SSRCs
	on the same m-line, and the latter used separate m-lines
	instead. Whatever signalling approach is used, I do feel that
	using SSRCs to demultiplex would make the process simpler.

	6. Finally, section 4.6 introduces the concept of "mixing" for
	RTT streams, which I'm not a fan of either, as it "flattens"
	everything, breaking end-to-end encryption when available in
	the process. The document provides even more cons, and
	clarifies how it should only be a last resort, which I agree on.

On the WebRTC side, things are much easier I believe. The approach
suggested in 5.1 is definitely what I'd go with, that is leveraging
labels to demultiplex participants: I wouldn't be too concerned about
the overhead of establishing a high number of channels, as most
implementations have ways to deal with high numbers anyway.

Lorenzo


> Thanks
> 
> Gunnar
> 
> Regards,
> 
> Christer
> 
> From: mmusic
> <mmusic-bounces@ietf.org><mailto:mmusic-bounces@ietf.org> on behalf
> of Gunnar Hellstrom
> <gunnar.hellstrom@omnitor.se><mailto:gunnar.hellstrom@omnitor.se>
> Date: Sunday, 15 December 2019 at 22.25 To:
> "mmusic@ietf.org"<mailto:mmusic@ietf.org>
> <mmusic@ietf.org><mailto:mmusic@ietf.org> Subject: [MMUSIC]
> Negotiation in draft-hellstrom-mmusic-multi-party-rtt-00.txt
> 
> 
> Hi,
> 
> draft-hellstrom-mmusic-multi-party-rtt/<https://datatracker.ietf.org/doc/draft-hellstrom-mmusic-multi-party-rtt/>
> currently contains sets of alternative solutions for different
> aspects of multi-party real-time text (RTT).
> 
> I would like to discuss these alternatives aspect by aspect, and
> eventually reduce them to one solution per aspect. By aspects, I mean
> negotiation for SIP, negotiation for WebRTC, source identification
> and multi-party transport for SIP, source identification and
> multi-party transport for WebRTC and mixing for the multi-party
> unaware case.
> 
> The main requirements are described in section 3 of the draft. One
> requirement is that the solution should be implementable in a near
> future. Point-to-point RTT solutions based on SIP and RTP with RFC
> 4103 transport are implemented, and there are cases where upgrade to
> multi-party support is urgent. It is assumed that most multi-party
> cases will be based on one central bridge. The media coding is
> according to ITU-T T.140, that is Unicode text transmitted UTF-8
> transformed, with some control codes from ISO 6429. Transmission
> takes place without any special action by the user other than
> creating text. Transmission is usually time sampled in about 300 ms
> samples.
> 
> I want to start with the negotiation aspect. Before the bridge can
> start transmitting RTT in a way suitable for good presentation of
> multi-party RTT, it must know that the receiving party is capable of
> separating text from the different participants. Also the UA may need
> an indication that it should include source information in a specific
> way for multi-party RTT to work..
> 
> Therefore, a negotiation method is needed. Chapter 7 contains the
> following negotiation alternatives.
> 
> 7.1 Implicit negotiation by the bridge expressing RTT multi-party
> capability indications according to RFC 4575, and the UA showing
> multi-party awareness only if it supports multi-party RTT.
> 
> 7.2 Define a new SIP media tag indicating RTT multi-party capability.
> Start using multi-party RTT after a successful capability exchange.
> 
> 7.3 Define a new SDP attribute on media level, indicating RTT
> multi-party capability. Start using multi-party RTT after a
> successful capability exchange.
> 
> There may be other alternatives that I have not thought about.
> 
> Pros and cons for these methods are documented in chapter 7.
> 
> I hope we can discuss the negotiation methods and soon get to a
> conclusion.
> 
> 
> 
> Regards
> 
> Gunnar
> 
> 
> 
> 
> Den 2019-11-01 kl. 00:43, skrev Gunnar Hellström:
> 
> Hi mmusic and avtcore,
> 
> I have replaced an old expired draft about real-time text multi-party
> handling. It touches both transport and negotiation topics, so I am
> sending this to both mmusic and avtcore, but I hope we can keep the
> discussion in mmusic. So, please respond with your comments to mmusic.
> 
> Right now, the draft is a discussion paper. I intend to convert it to
> a true BCP format after some discussions on the preferences I have
> proposed.
> 
> Regards
> 
> Gunnar Hellström
> 
> 
> -------- Vidarebefordrat meddelande --------
> Ämne:
> I-D Action: draft-hellstrom-mmusic-multi-party-rtt-00.txt
> Datum:
> Thu, 31 Oct 2019 16:33:35 -0700
> Från:
> internet-drafts@ietf.org<mailto:internet-drafts@ietf.org>
> Svar till:
> internet-drafts@ietf.org<mailto:internet-drafts@ietf.org>
> Till:
> i-d-announce@ietf.org<mailto:i-d-announce@ietf.org>
> 
> 
> 
> A New Internet-Draft is available from the on-line Internet-Drafts
> directories.
> 
> 
> Title : Real-time text media handling in multi-party conferences
> Author : Gunnar Hellstrom
> Filename : draft-hellstrom-mmusic-multi-party-rtt-00.txt
> Pages : 36
> Date : 2019-10-31
> 
> Abstract:
> This memo specifies methods for Real-Time Text (RTT) media handling
> in multi-party calls. The main solution is to carry Real-Time text
> by the RTP protocol in a time-sampled mode according to RFC 4103.
> The main solution for centralized multi-party handling of real-time
> text is achieved through a media control unit coordinating multiple
> RTP text streams into one RTP session.
> 
> Identification for the streams are provided through the RTCP
> messages. This mechanism enables the receiving application to
> present the received real-time text medium in different ways
> according to user preferences. Some presentation related features
> are also described explaining suitable variations of transmission and
> presentation of text.
> 
> Call control features are described for the SIP environment. A
> number of alternative methods for providing the multi-party
> negotiation, transmission and presentation are discussed and a
> recommendation for the main one is provided. Two alternative methods
> using a single RTP stream and source identification inline in the
> text stream are also described, one of them being provided as a lower
> functionality fallback method for endpoints with no multi-party
> awareness for RTT.
> 
> Brief information is also provided for multi-party RTT in the WebRTC
> environment.
> 
> EDITOR NOTE: A number of alternatives are specified for discussion.
> A decision is needed which alternatives are preferred and then how
> the preferred alternatives shall be emphasized.
> 
> 
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-hellstrom-mmusic-multi-party-rtt/
> 
> There are also htmlized versions available at:
> https://tools.ietf.org/html/draft-hellstrom-mmusic-multi-party-rtt-00
> https://datatracker.ietf.org/doc/html/draft-hellstrom-mmusic-multi-party-rtt-00
> 
> 
> Please note that it may take a couple of minutes from the time of
> submission until the htmlized version and diff are available at
> tools.ietf.org.
> 
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
> 
> _______________________________________________
> I-D-Announce mailing list
> I-D-Announce@ietf.org<mailto:I-D-Announce@ietf.org>
> https://www.ietf.org/mailman/listinfo/i-d-announce
> Internet-Draft directories: http://www.ietf.org/shadow.html
> or ftp://ftp.ietf.org/ietf/1shadow-sites.txt
> 
> 
> 
> _______________________________________________
> 
> mmusic mailing list
> 
> mmusic@ietf.org<mailto:mmusic@ietf.org>
> 
> https://www.ietf.org/mailman/listinfo/mmusic
> 
> --
> 
> 
> 
> + + + + + + + + + + + + + +
> 
> 
> 
> Gunnar Hellström
> 
> Omnitor
> 
> gunnar.hellstrom@omnitor.se<mailto:gunnar.hellstrom@omnitor.se>
> 
> +46 708 204 288
> 
> --
> 
> + + + + + + + + + + + + + +
> 
> Gunnar Hellström
> Omnitor
> gunnar.hellstrom@omnitor.se<mailto:gunnar.hellstrom@omnitor.se>
> +46 708 204 288



-- 
I'm getting older but, unlike whisky, I'm not getting any better
https://twitter.com/elminiero