Re: [rtcweb] Real-time text
Adam Roach <adam@nostrum.com> Tue, 17 December 2013 14:58 UTC
Return-Path: <adam@nostrum.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 783DB1AE274 for <rtcweb@ietfa.amsl.com>; Tue, 17 Dec 2013 06:58:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.035
X-Spam-Level:
X-Spam-Status: No, score=-1.035 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_MISMATCH_COM=0.553, HOST_MISMATCH_NET=0.311, HTML_MESSAGE=0.001] autolearn=no
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 ScqaDGQI4xJF for <rtcweb@ietfa.amsl.com>; Tue, 17 Dec 2013 06:58:23 -0800 (PST)
Received: from shaman.nostrum.com (nostrum-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:267::2]) by ietfa.amsl.com (Postfix) with ESMTP id E75861AE272 for <rtcweb@ietf.org>; Tue, 17 Dec 2013 06:58:19 -0800 (PST)
Received: from orochi-2.roach.at (99-152-145-110.lightspeed.dllstx.sbcglobal.net [99.152.145.110]) (authenticated bits=0) by shaman.nostrum.com (8.14.3/8.14.3) with ESMTP id rBHEwHuw055877 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Tue, 17 Dec 2013 08:58:18 -0600 (CST) (envelope-from adam@nostrum.com)
Message-ID: <52B06684.3080103@nostrum.com>
Date: Tue, 17 Dec 2013 08:58:12 -0600
From: Adam Roach <adam@nostrum.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Thunderbird/24.1.1
MIME-Version: 1.0
To: Gunnar Hellstrom <gunnar.hellstrom@omnitor.se>, rtcweb@ietf.org
References: <50B87606.5030802@ericsson.com> <50BB22EB.1030803@ericsson.com> <A146C647-C0CB-413C-B7D1-B84FE2FF5041@standardstrack.com> <C5E08FE080ACFD4DAE31E4BDBF944EB113276B4A@xmb-aln-x02.cisco.com> <BLU405-EAS354CC2E5F543EC4B6DD57F393400@phx.gbl> <50BCFCFE.3080104@nostrum.com> <52B0245E.5000003@omnitor.se>
In-Reply-To: <52B0245E.5000003@omnitor.se>
Content-Type: multipart/alternative; boundary="------------080604080504010000070101"
Received-SPF: pass (shaman.nostrum.com: 99.152.145.110 is authenticated by a trusted mechanism)
Subject: Re: [rtcweb] Real-time text
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 17 Dec 2013 14:58:25 -0000
Unfortunately, I have other obligations that would keep me from doing something as rigorous as you describe below at the moment. However, I'll point out that something like this -- which doesn't even go peer-to-peer -- already satisfies all of your requirements except for #3 and #6: https://etherpad.mozilla.org/TexVGQxmQJ I think you can envision how porting a system like this to use unreliable datachannels rather than reliable websockets would make it trivially possible to address those two requirements, right? /a On 12/17/13 04:15, Gunnar Hellstrom wrote: > I am picking up an old thread about how to do real-time text (RTT) in > the WebRTC environment. > On 2012-12-03 20:26, Adam Roach wrote: >> We can do RTT right now with data channels. I can hack together a >> ridiculously simple example on top of Firefox Nightly build if you >> want to see it. > Yes, I want to accept that offer, thanks. > > It would also be good to have a common specification on how to do it. > > Here is a set of requirements: > > 1. Text shall be delivered in order. > 2. The presentation protocol elements shall be conveyed to the receiver. > 3. Transmission problems shall not cause long blocking of > transmission for retries, but rather mark the loss and transmit > next text sample. > 4. If there are transmission problems, retries shall continue up to a > defined maximum time (e.g. 3 seconds). If unsuccessful, the > transmitter should be notified, and the receiver shall be notified > at least at next successful transmission to the receiver. > 5. Duplications shall not appear. > 6. Gaps appearing because of bad transmission shall be marked in the > received text. When T.140 is used, that is done by the UTF-8 > character "replacement character". > 7. The source of the transmission shall be conveyed so that it can be > displayed together with received text. > 8. The transmission contents are short time-sampled strings of UTF-8 > coded characters consisting of text and presentation control > codes. (e.g. according to ITU-T T.140) > 9. The method shall not cause overhead of more than 10 kbit/s (rather > much less) when transmitting every 300 ms. > 10. Transmission shall be performed in time samples of 300 - 700 ms > each. 300 ms is preferred if overhead is acceptable. > 11. It shall be possible to use the transmission for multiparty calls, > where text from different sources shall be displayed separate, > e.g. as in a multiparty text chat but with real-time display. This > can be achieved in three ways: > > a.Each transmission has information about the source in a structured way. > > b.Each source sets up its own data channel. The source is identified > when the channel is set up. > > c.Source information is embedded in the text. > > I have tried to map these requirements to the rtcweb data channel with > the following conclusions: > > *RTCDataChannel use for real-time text transmission* > > The WebRTC data channel offers suitable types of reliable or > partially-reliable channels where retransmissions can be maximised to > a time or a number. > > The RTCDataChannel type most suited for these requirements seem to be > the ordered type with a MaxReTransmit Time=3000, and Protocol= T140 ( > T140 needs to be registered with IANA, before that is completed, the > experimental versions need to set Label = T140. ) > > But it is not clear if it provides information about transmission > failures to the transmitter or the receiver. > > If no error info about loss is provided, then a sequence number needs > to be provided with each transmission and an identification of gaps on > reception. > > The connections can become closed in case of transmission problems. It > should then be opened again. In such a procedure, it cannot be known > if text was lost or transmitted in the shift between the current and > previous channel instance. Therefore it seems that text samples should > have sequence numbers, and the receiving application need to check > arrived text samples for duplication and loss. In case of duplication, > the duplicate shall be discarded. In case of loss, the UTF-8 > replacement character shall be inserted in the received string. > > The transmitter samples the text source for text and transmits every > 300 ms, when there is text to transmit. > The receiver checks received text for duplication and gaps and > displays text according to T.140 presentation. > > > > Do you agree in these conclusions? > > /Gunnar >
- [rtcweb] Consensus call on Text Communication Magnus Westerlund
- Re: [rtcweb] Consensus call on Text Communication Bernard Aboba
- Re: [rtcweb] Consensus call on Text Communication Matthew Kaufman
- Re: [rtcweb] Consensus call on Text Communication DRAGE, Keith (Keith)
- Re: [rtcweb] Consensus call on Text Communication Harald Alvestrand
- Re: [rtcweb] Consensus call on Text Communication Timothy B. Terriberry
- Re: [rtcweb] Consensus call on Text Communication Martin Thomson
- Re: [rtcweb] Consensus call on Text Communication Adam Roach
- Re: [rtcweb] Consensus call on Text Communication Randell Jesup
- Re: [rtcweb] Consensus call on Text Communication Gunnar Hellström
- Re: [rtcweb] Consensus call on Text Communication Gunnar Hellström
- Re: [rtcweb] Consensus call on Text Communication Gunnar Hellström
- Re: [rtcweb] Consensus call on Text Communication Randell Jesup
- Re: [rtcweb] Consensus call on Text Communication Randell Jesup
- Re: [rtcweb] Consensus call on Text Communication Salvatore Loreto
- [rtcweb] Data channel SDP (Re: Consensus call on … Harald Alvestrand
- Re: [rtcweb] Consensus call on Text Communication Eric Rescorla
- Re: [rtcweb] Consensus call on Text Communication Gunnar Hellström
- Re: [rtcweb] Consensus call on Text Communication Eric Rescorla
- Re: [rtcweb] Consensus call on Text Communication Erik Lagerway
- Re: [rtcweb] Consensus call on Text Communication Jim Barnett
- Re: [rtcweb] Consensus call on Text Communication Gunnar Hellström
- Re: [rtcweb] Consensus call on Text Communication Michael Tuexen
- Re: [rtcweb] Consensus call on Text Communication Randell Jesup
- Re: [rtcweb] Consensus call on Text Communication Michael Tuexen
- Re: [rtcweb] Consensus call on Text Communication Gunnar Hellström
- [rtcweb] Sanity plea: change subject! (Re: Consen… Harald Alvestrand
- Re: [rtcweb] Consensus call on Text Communication Stefan Håkansson LK
- Re: [rtcweb] Consensus call on Text Communication Eric Burger
- Re: [rtcweb] Consensus call on Text Communication Eric Rescorla
- Re: [rtcweb] Consensus call on Text Communication Cullen Jennings (fluffy)
- [rtcweb] Consensus call on Text Communication Mark Rejhon
- Re: [rtcweb] Consensus call on Text Communication Richard Shockey
- Re: [rtcweb] Consensus call on Text Communication Bernard Aboba
- Re: [rtcweb] Consensus call on Text Communication Adam Roach
- Re: [rtcweb] Consensus call on Text Communication Richard Shockey
- Re: [rtcweb] Consensus call on Text Communication Roman Shpount
- [rtcweb] Real-time text implementation Gunnar Hellström
- [rtcweb] Real-time text implementations Gunnar Hellström
- Re: [rtcweb] Consensus call on Text Communication Richard Shockey
- Re: [rtcweb] Real-time text implementations Randell Jesup
- Re: [rtcweb] Consensus call on Text Communication Randell Jesup
- Re: [rtcweb] Consensus call on Text Communication Bernard Aboba
- Re: [rtcweb] Consensus call on Text Communication Bernard Aboba
- Re: [rtcweb] Consensus call on Text Communication Stefan Hakansson LK
- Re: [rtcweb] Consensus call on Text Communication Randell Jesup
- [rtcweb] Reasons for real-time text and implement… Gunnar Hellström
- Re: [rtcweb] Consensus call on Text Communication Eric Burger
- Re: [rtcweb] Consensus call on Text Communication Richard Shockey
- [rtcweb] Engineering approach to RTT communicatio… Harald Alvestrand
- Re: [rtcweb] Consensus call on Text Communication Richard Shockey
- Re: [rtcweb] Engineering approach to RTT communic… Ted Hardie
- Re: [rtcweb] Engineering approach to RTT communic… Randell Jesup
- Re: [rtcweb] Engineering approach to RTT communic… Matthew Kaufman
- Re: [rtcweb] Engineering approach to RTT communic… Mark Rejhon
- Re: [rtcweb] Engineering approach to RTT communic… Gunnar Hellström
- Re: [rtcweb] Engineering approach to RTT communic… Matthew Kaufman
- Re: [rtcweb] Engineering approach to RTT communic… Gunnar Hellström
- Re: [rtcweb] Real-time text implementations Dale R. Worley
- Re: [rtcweb] Real-time text implementations Gunnar Hellström
- Re: [rtcweb] Engineering approach to RTT communic… Martin Thomson
- Re: [rtcweb] Engineering approach to RTT communic… Matthew Kaufman
- Re: [rtcweb] Engineering approach to RTT communic… Bernard Aboba
- [rtcweb] Engineering approach to RTT communicatio… Mark Rejhon
- Re: [rtcweb] Engineering approach to RTT communic… Harald Alvestrand
- [rtcweb] Result of Consensus call on Text Communi… Magnus Westerlund
- [rtcweb] Real-time text Gunnar Hellstrom
- Re: [rtcweb] Real-time text BeckW
- Re: [rtcweb] Real-time text Adam Roach