Re: [AVTCORE] Source switching performance in draft-hellstrom-avtcore-multi-party-rtt-source-01.txt - suggested text changes

James Hamlin <> Wed, 18 March 2020 11:51 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id D43263A1454 for <>; Wed, 18 Mar 2020 04:51:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id UOLTqOQdZSXK for <>; Wed, 18 Mar 2020 04:50:57 -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 8E12E3A1424 for <>; Wed, 18 Mar 2020 04:50:55 -0700 (PDT)
Received: from (unknown []) by (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NO); Wed, 18 Mar 2020 11:50:51 +0000
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.1263.5; Wed, 18 Mar 2020 04:50:22 -0700
Received: from ([fe80::e190:fa54:4b11:2dfb]) by ([fe80::e190:fa54:4b11:2dfb%13]) with mapi id 15.00.1263.000; Wed, 18 Mar 2020 04:50:22 -0700
From: James Hamlin <>
To: Gunnar Hellström <>, "" <>
Thread-Topic: Source switching performance in draft-hellstrom-avtcore-multi-party-rtt-source-01.txt - suggested text changes
Thread-Index: AQHV/QuhdUa9qnltCkiSJrblJUxkIw==
Date: Wed, 18 Mar 2020 11:50:22 +0000
Message-ID: <>
References: <>, <>
In-Reply-To: <>
Accept-Language: en-GB, en-US
Content-Language: en-GB
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_158453222232411026purpleus_"
MIME-Version: 1.0
X-BESS-ID: 1584532221-893025-8865-15579-2
X-BESS-VER: 2019.1_20200317.2325
X-BESS-Outbound-Spam-Score: 0.20
X-BESS-Outbound-Spam-Report: Code version 3.2, rules version [from] Rule breakdown below pts rule name description ---- ---------------------- -------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.20 BSF_SC0_SA953 META: Custom Rule BSF_SC0_SA953 0.00 BSF_BESS_OUTBOUND META: BESS Outbound
X-BESS-Outbound-Spam-Status: SCORE=0.20 using global scores of KILL_LEVEL=7.0 tests=HTML_MESSAGE, BSF_SC0_SA953, BSF_BESS_OUTBOUND
X-BESS-BRTS-Status: 1
Archived-At: <>
Subject: Re: [AVTCORE] Source switching performance in draft-hellstrom-avtcore-multi-party-rtt-source-01.txt - suggested text changes
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 18 Mar 2020 11:51:04 -0000

Hi Gunnar

Having thought through some alternatives, it is now easier to suggest possible changes to the current text.

In Section 11 SDP Capability negotiation, append:-

When an rtp-mixer offers the "rtt-mix" capability, it SHOULD be willing to provide a mixed stream according to [or should this be in-lined?] that is compatible with RFC4103 implementations that do not implement this specification, unless it is known that it will not need to inter-operate with such implementations.

In section 10.  Usage without redundancy:-

When transmitting, using the text/t140 format, to a party that has indicated the "rtt-mix" capability, the CSRC-list SHOULD contain exactly one member.

To avoid potential interoperability problems with older RFC 4103 implementations which do not expect a CSRC-list, the CSRC-list SHOULD be empty when transmitting to a party that has not has indicated the "rtt-mix" capability.

The text/red format SHOULD be used unless some other protection against packet loss is utilized, for example a reliable transport such as TCP.

Section 10 could move to after the current section 11 so the SDP gets defined first.

In section 4 "Use of fields in the RTP packets" insert:

Note: This specification departs from section 4 of RFC2198 which associates the whole of the CSRC-list with the primary data and assumes that the same list applies to reconstructed redundant data. In this specification a text block is associated with exactly one CSRC as described above. Also RFC2198 anticipates infrequent change to

CSRCs; implementers should be aware that the order of the CSRC-list according to this specification will rotate during transitions between different participants sending text.

In "9.  Use with SIP centralized conferencing framework" insert:

The CSRC-list in an RTP packet only includes participants who's text is included in one or more text blocks. It is not the same as the list of participants in a conference. With audio and video media, the CSRC-list would often contain all participants who are not muted whereas text participants that don't type are completely silent and so don't show up in RTP packet CSRC-lists.

Best regards



[X]James Hamlin
Purple, a Division of ZP Better Together, LLC

The information contained in this e-mail message is intended only for the personal and confidential use of the recipient(s) named above. If you have received this communication in error, please notify us immediately by e-mail, and delete the original message.

From: Gunnar Hellström <>
Sent: 13 March 2020 16:41
To:; James Hamlin
Subject: Source switching performance in draft-hellstrom-avtcore-multi-party-rtt-source-01.txt


I want to follow-up on the good discussion on source switching performance a couple of days ago, under the subject "[AVTCORE] Improved RTP-mixer performance for RFC 2198 and RFC 4103 redundancy coding"

Two parts in the performance increase solution.
Two actions are proposed in draft-hellstrom-avtcore-multi-party-rtt-source:
a) Reduce the packet transmission interval from 300 to 100 ms.
b) Use a strict relation between members in the CSRC list and the parts of the payload that is original text and first generation redundancy and second generation redundancy so that the mixer can switch source for every new packet and the sources of text recovered from redundancy can be assessed by the receiver.

I think it is worth while to move forward with the complete improvement a) and b) proposed in the draft. It will cause less complexity, lower delays and lower risk for stalling in case of many participants entering new text simultaneously.

Here is my reasoning:

I have the following view of the achievable performance improvements for different cases:

1. With the original source switching with RFC 4103 and an RTP-mixer using 300 ms transmission interval and not allowing a mix of sources in one packet, there can be one source switching per second by the mixer with an introduced delay of up to one second.

2. By just reducing the transmission interval from 300 to 100 ms, it will be possible to have three source switches per second with an introduced delay of up to one second. (with just two parties sending text simultaneously, the delay will be maximum 300 ms. )

3. And by applying the proposal from the multi-party-rtt-source draft with the CSRC-list as a source list for the redundancy, and also using 100 ms transmission interval, there can be switching between five source per second with an introduced delay of max 500 ms. With just two parties typing simultaneously, the delay will be a maximum of 100 ms.

The delays are extreme values from when all sources start to type simultaneously.  It was agreed that at least the improvement from the reduced transmission interval is needed.

Case 1 and 2 are a bit complex for the mixer to implement. From the moment it has text queued for transmission from another source B than the one currently transmitted A, then the mixer needs to stop adding new text from A to the packets, but still send two more packets with the agreed transmission interval, progressing the latest transmitted original text to first generation redundancy and then again one more packet with the text as second level redundancy. Not until that is done, the mixer is allowed to start taking text from the transmission queue from B to transmit. This is the background of the 1 s vs 300 ms delays in case 1 and 2.

In case 3, there is much less complexity. When there is something from B in queue for transmission, the mixer can decide to insert that in next packet and add the redundancy from earlier transmissions from A, because their sources are included in the CSRC list in the same packet.

Therefore I want to move on with the complete solution in case 3.


Influence on the multi-party capability negotiation:
There is an installed park of RTT implementations without multi-party awareness. The receiver need to take active part in planning the multi-party RTT presentation. Therefore a capability negotiation is needed. A simple sdp attribute a=rtt-mix without value is proposed in the draft.

It is important to let this attribute mean capability of the complete solution case 3).  If there is a temptation to have different levels of implementation, some only implementing the shorter transmission interval (2) and some implementing the complete solution (3), then threre will be a need for two different attributes, or one attribute with a list of parameter values for the two cases. That would complicate the evaluation of the negotiation. Therefore I would prefer that the attribute can mean capability to use the complete mixing solution (3).



Den 2020-02-29 kl. 20:13, skrev<>:

A New Internet-Draft is available from the on-line Internet-Drafts directories.

        Title           : Indicating source of multi-party Real-time text
        Author          : Gunnar Hellstrom
        Filename        : draft-hellstrom-avtcore-multi-party-rtt-source-01.txt
        Pages           : 13
        Date            : 2020-02-29

   Real-time text mixers need to identify the source of each transmitted
   text chunk so that it can be presented in suitable grouping with
   other text from the same source.  An enhancement for RFC 4103 real-
   time text is provided, suitable for a centralized conference model
   that enables source identification, for use by text mixers and
   conference-enabled participants.  The mechanism builds on use of the
   CSRC list in the RTP packet.  A capability exchange is specified so
   that it can be verified that a participant can handle the multi-party
   coded real-time text stream.  The capability is indicated by an sdp
   media attribute "rtt-mix".

The IETF datatracker status page for this draft is:

There are also htmlized versions available at:

A diff from the previous version is available at:

Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at

Internet-Drafts are also available by anonymous FTP at:

I-D-Announce mailing list<>
Internet-Draft directories:


+ + + + + + + + + + + + + +

Gunnar Hellström
+46 708 204 288