Re: [MMUSIC] draft-holmberg-mmusic-t140-usage-data-channel - multi-party

Christer Holmberg <> Thu, 29 August 2019 10:56 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C46C11207FE for <>; Thu, 29 Aug 2019 03:56:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.002
X-Spam-Status: No, score=-2.002 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id K2kfiDMAoVAY for <>; Thu, 29 Aug 2019 03:56:37 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id C3A1A120019 for <>; Thu, 29 Aug 2019 03:56:36 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901;; cv=none; b=FFKdR7JSBMEOweRwgy47VoLF/EWGcz+S2keVFQA8+lWGDiSwnyLsOxTE+Ov+/UJOBYGmy0yoA0m5b6R7cOdqj1ICifVCqdoTe83fpm394xmyR1DFTTwPCShMuL2BheWl9ZmfOBZ5o98ifRrrq98O7AZ5hSnea0NXT0gcI6eFN08ICUbD5nQytybX1kdKQwxvErPLTHcNMK9ALBetrfShynWUl/Tomuh4hDRlrx4LeqCAiEDJ8zfHW9lcVBj2ds9iXJixmeuNs4Qs2NXdlWM/o7q0YB1daUpy3031embK6Zk71NM0f2fTLRUYQde6h9kI+wSGNyWbZeUmDrI8zBse2Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pcnzeuiBlgESvfuYB7qobk60Gco8i72I1mPIo8TMV7g=; b=maObMgzz6zDNLqiO6YaqTyCWjpOOMWw0Rd/CpOTHjokIyQ7VeTtimhJszdvsJ6eReoyYFexdoMOO7O9jnJzCJIXm7la4Eybgb6Vk/CC+HXjIkbRtBYhyCJmiimiufHgNnw6lCE8UiBnB7BY0mqTxcu7tqqM2NXjGmnu5nEdBBRZPw+5Yg9ZDgCBsKsUE3SHuMHn2UFlyE90+h8bxmWnURSt5a9lm27IPGSvFpEOVhftQObbO24ThBkA8lGTyxGwDfnDTE82ldjS0HLBqhli0LHFQ13SHft8EQkqVctRDGg3hORUQnjqIUEJGGuOTLINXQRMS6NiM/amChiCdL4FeGg==
ARC-Authentication-Results: i=1; 1; spf=pass; dmarc=pass action=none; dkim=pass; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pcnzeuiBlgESvfuYB7qobk60Gco8i72I1mPIo8TMV7g=; b=qd/1uMdd9Cqw21sh6wb4aFSPH6r4jcZQxphm0pqmtpRQHzpOiih7dX6Fzw6ra3wIeuedtIUIguHJyK6sibyR96M5X22MAGCHDiJNtxYGbFrGlVceglgxI2fVhftjMjgdMMAlUkT4oSf8IJvmFKJLEdW9hU8MVqn9cVtmaqPSgwI=
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2199.12; Thu, 29 Aug 2019 10:56:33 +0000
Received: from ([fe80::80eb:171e:dd12:a00c]) by ([fe80::80eb:171e:dd12:a00c%7]) with mapi id 15.20.2220.013; Thu, 29 Aug 2019 10:56:33 +0000
From: Christer Holmberg <>
To: =?utf-8?B?R3VubmFyIEhlbGxzdHLDtm0=?= <>, "Roni Even (A)" <>, "" <>
Thread-Topic: [MMUSIC] draft-holmberg-mmusic-t140-usage-data-channel - multi-party
Thread-Index: AQHVWxEvddfWyrxgrkCFyNXjkjXeRqcR2wqAgAAzk4D//9IhAIAAM3+A///QGQCAADY0AP//3oSAAAZ+I4A=
Date: Thu, 29 Aug 2019 10:56:33 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-GB
user-agent: Microsoft-MacOutlook/10.1b.0.190715
authentication-results: spf=none (sender IP is );
x-originating-ip: []
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9fb43dc5-fe81-424a-9438-08d72c6f8e69
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:AM4PR07MB3250;
x-ms-traffictypediagnostic: AM4PR07MB3250:
x-ms-exchange-purlcount: 2
x-microsoft-antispam-prvs: <>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0144B30E41
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(366004)(136003)(39860400002)(376002)(396003)(189003)(199004)(256004)(14444005)(33656002)(66446008)(91956017)(64756008)(66556008)(66476007)(66946007)(6512007)(71200400001)(71190400001)(66574012)(7736002)(3846002)(6116002)(5660300002)(2906002)(76116006)(305945005)(99286004)(478600001)(53546011)(6506007)(25786009)(186003)(6246003)(53936002)(26005)(110136005)(102836004)(58126008)(316002)(486006)(14454004)(446003)(11346002)(66066001)(2616005)(476003)(6486002)(229853002)(76176011)(6306002)(36756003)(966005)(6436002)(8936002)(81166006)(86362001)(44832011)(81156014)(2501003)(8676002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR07MB3250;; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None ( does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: UokinxUsEVQIo31uvhkM6A6CRfilqiZf5CHDiH0EajmN5RGp7ERRZFaqyCLAzvBS54in7qjZmWCaf3sBQYC3FJoSS/n+8xKOOcxSA8loeZSq7NpX0B9kn3BIv+Mydjo2bLYapBbbKzHEuIT4hFLZXDC2Gipu2BxALpEj6c2S6w3lpQCWb+m7HXDOfDWSrHfsQJmJoToSzxLCOKLFDun/Wl+pI+SWdF5IGnPSA8ZUpoU7zOefxd7OMxDZi5EziiiPuJW0Mp82jgoNrHIkdvdsKNvWsAd+MagXeu2gcLcVWabA7IIwhBJ2cxreUd/W66EpMc6c2X/+s/L84Y2+75Zrg/D/Ax82c9xdksF8x9Y8TaNff1bZVir8P5JweADaIhdIkElSf9QNQtvdRb3fKrM4bY7uUQrivDSIGS1I7E7FJ0M=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 9fb43dc5-fe81-424a-9438-08d72c6f8e69
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Aug 2019 10:56:33.7680 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: h0aQ2V5FF7CM/3/7BxY5tHWViKDjk0dzx/1JDmHyUxU/rPf1U9rPeE48aTyPFbYCOTdM/uqgcuCdjJRbIF8PPBC0ebyOZHHZhrUZyNh5848=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR07MB3250
Archived-At: <>
Subject: Re: [MMUSIC] draft-holmberg-mmusic-t140-usage-data-channel - multi-party
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 29 Aug 2019 10:56:41 -0000

>    We need to remember also Paul's question, if we really need a 
>    multi-party case with a central server combining real-time text from 
>    many sources in one data channel and have source indication on every 
>    T.140 element so that the receiving client can make its own presentation 
>    layout of the real-time text conference.
>    Maybe we can assume that for the case that the receiving client want to 
>    make its own layout, the case with one T.140 data channel per active 
>    user is realistic and sufficient.
We could make that assumption for now. Then, if the market later asks for something else, we'll start working on it.

The first step is for people to start using data channels for T.140 to begin with :)



    Den 2019-08-29 kl. 11:50, skrev Christer Holmberg:
    > Hi,
    >>>> I you want to multiplex but know who is contributing the data you need
    >>>> some identifier as part of the T.140 data packet similar to SSRC in the RTP header.
    >>>   Exactly, and that is what have been discussed :)
    >>>> It is not even similar to CSRC since CSRC is more about providing
    >>>> about the content of this specific RTP packet but in this case each t.140 packet is
    >>>> coming from a single source so one identifier is needed.
    If it was from a combining server on the RTP side, I think it would be 
    CSRC. The SSRC would then point at the server.
    >>> Your comment above shows why I have suggested to take the discussion to AVT: there you will find
    >>>   people (like yourself) that know more about that kind of stuff :)
    >>   RE: This is not AVT and not MMUSIC since it is some encapsulation for T.140 which is not RTP.
    >> This is a topic for dispatch since it may be a single draft that needs a home
    > We are using the RFC 4103 T140block also on the data channel, so *IF* the solution would be an update to that, wouldn't it belong to AVT?
    > *IF* the solution is an update to T.140, I guess that should be done in ITU-T?
    T140blocks are just a number of complete T.140 code elements. And it is 
    possible to define new such code elements.
    So, even if RFC 4103 defined the term T140block, it is in ITU-T that 
    additions to it should be defined.
    If instead we specify that the T.140 data channel  shall carry a source 
    and a T.140block in each T.140 data channel message, then it is a matter 
    for mmusic and the draft we discuss here (or AVT or the closed RTCWEB if 
    it seems complex) to specify that source element and the structure of 
    the T.140 data channel message contents.
    > Having said that, before going into solutions there should be *A* venue to discuss the problem.
    > Regards,
    > Christer
    >      From: Christer Holmberg []
    >      Sent: Thursday, August 29, 2019 12:08 PM
    >      To: Roni Even (A); Gunnar Hellström;
    >      Subject: Re: [MMUSIC] draft-holmberg-mmusic-t140-usage-data-channel - multi-party
    >      Hi Roni,
    >      >My view is that is we are talking about WEBRTC, the multiparty and user information will be part of the communication between the application >server and the browser and the application server is doing whatever mixing or forwarding that it needs.
    >      >I can see that there must be some way for the application server to know what is each t.140 data channel   if there is more than one , some >distinction is the language attribute. If you want more maybe as Christer suggested use the “content” attribute whose objective is to provide >information about stream.
    >      The main issue is if you want to use a *single* data channel for T.140 traffic from multiple remote participants. In that case you need to be able to indicate the source of the T.140 data, but unlike RTP you don’t have SSRC etc for doing that.
    >      Regards,
    >      Christer
    >      From: mmusic [] On Behalf Of Gunnar Hellström
    >      Sent: Sunday, August 25, 2019 9:49 AM
    >      To: Christer Holmberg;
    >      Subject: Re: [MMUSIC] draft-holmberg-mmusic-t140-usage-data-channel - multi-party
    >      Hi Christer,
    >      Below are comments on the multi-party considerations
    >      Den 2019-08-24 kl. 12:04, skrev Christer Holmberg:
    >      --------------------------------------------------------------------------------------------------------------------------------------------
    >      18. Add a new section 4.5
    >      4.5 Multi-party considerations
    >      Implementations should be prepared to accept establishment and use of multiple T140 data channels in order to support multi-party sessions with real-time text. A number of scenarios are available for how multi-party sessions can be supported in the WebRTC environment.
    >      Implementations may select any suitable scenario.
    >      I don't think we need the two last sentences.
    >      Also, in some cases all communication will go via a central server, so there will only be one T.140 data channel towards each participant.
    >      No, T.140 has no source indicator of its own, it relies on the transport to indicate the source for each T140block. In RTP, this can be done by an RTP mixer making one stream from multiple sources including CSRC for the sources of the primary text and for the redundant generations of text in each packet. On the T140 data channel side, I do not know any corresponding way to indicate different sources in the same data channel.
    >      The solutions I see are: 1) create one T140 channel per source/destination pair. or 2) Introduce a source indicator in the data format for the T140 data channel, either one per STCP message requiring all T140blocks in the message being from one source only, or inline between series of T140blocks from different sources. This is because the real-time text from multiple sources simultaneously need to be presented with some separation, so that the text gets readable at least sentence-wise from each source. The T.140 Appendix 1 shows two ways to do this, one column-oriented, and one sentence-oriented with a label per start of sentence. You can read more about the topic in
    >      So, maybe something like:
    >      "In order for an implementation to be able to support multi-party scenarios where each participant will communicate directly
    >      with the other participants, the implementation need to be able to support multiple simultaneous T.140 data channels."
    >      While that is true, it does not tell us how to solve the case with a conference server.
    >      Presentation should be made so that the source of the real-time text is perceivable and the relative time relations in the conversation approximately presented.
    >      The "label" attribute may be used to convey a presentable source.
    >      I am not sure I understand the "relative time relations" part.
    >      In order to enable the reader to follow the flow of a multi-party text conversation, it is a good habit to present older text placed higher in the text area and newer text placed lower. (This is valid for both when you present text in one column per source and if you combine all sources in one (IRC-style) column).
    >      It is also a good habit to present text from the same source readable together, e.g. sentence by sentence, (and not break the text just because a text item from another source was received during the time the sentence was created).
    >      These two requirements are in conflict. A true time-related presentation would fragment simultaneous text from different sources into unreadability, and presenting all text from each source in one chunk each would give no clue about the flow of the discussion.
    >      Therefore this expression " the relative time relations in the conversation approximately presented".
    >      Regarding the source, perhaps extending my suggested text above with something like:
    >      "In order for an implementation to be able to support multi-party scenarios where each participant will communicate directly
    >      with the other participants, the implementation need to be able to support multiple simultaneous T.140 data channels. The label
    >      attribute can be used to provide information that helps an implementation to distinguish between the T.140 data channels."
    >      Yes, this is a good statement for the case without the server, or can be modified for a server that maintains a channel per source. But which solution do you prefer if we allow a mixing server?
    >      1) require also servers to support one T140 data channel per source
    >      2) introduce a data format for the T140 data channel containing a unique source identifier
    >      3) introduce a source identifier in-line in the T.140 data stream. (T.140 is extendable)
    >      /Gunnar
    >      ----------------------------------------------------------------------------------------------------------------------------------
    >      -
    >      -
    >      -----------------------------------------
    >      Gunnar Hellström
    >      Omnitor
    >      +46 708 204 288
    > _______________________________________________
    > mmusic mailing list
    Gunnar Hellström
    +46 708 204 288