Re: [rtcweb] Working group last call for draft-ietf-rtcweb-audio

Roman Shpount <roman@telurix.com> Tue, 26 January 2016 20:00 UTC

Return-Path: <roman@telurix.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 A44441B2CB2 for <rtcweb@ietfa.amsl.com>; Tue, 26 Jan 2016 12:00:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.278
X-Spam-Level:
X-Spam-Status: No, score=-1.278 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SPF_PASS=-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 iY2ooOy9Ac-q for <rtcweb@ietfa.amsl.com>; Tue, 26 Jan 2016 12:00:00 -0800 (PST)
Received: from mail-io0-x22d.google.com (mail-io0-x22d.google.com [IPv6:2607:f8b0:4001:c06::22d]) (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 49E131B2C46 for <rtcweb@ietf.org>; Tue, 26 Jan 2016 12:00:00 -0800 (PST)
Received: by mail-io0-x22d.google.com with SMTP id g73so202228377ioe.3 for <rtcweb@ietf.org>; Tue, 26 Jan 2016 12:00:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telurix-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=VId9ylHlNRhlodVLdr7zgN940QzoC2MgkBfRSoLoEdk=; b=vjD928Rm119guEAC5kcmldNVcgvi8cyQUHbmIGP+iLVriqoLSsQXowXxiyIbA0I3Rc nCgON9BCge7wEIROi23ooh+B4OkL6gqEN54ecmuWWyjEpjPV6Kkr7eYpoqsdwk1YJNx6 UoT84PMlQGA5FnmaXT7TYItYJpQM1kmZp8iO1jfK1qHAPSStM/xZxA+DHlMH+A6+dARC YpRba98NPzDkNqqfMJdi5GQoGLgo4cJI2l0IlbzO5gMNshlnuAFJOyE7L7Cl54nO+1lj tVIejDCDk5kcG4ZYURlDTs5IoztLNuyNT3IMjyqbMLV/JO/hBZONHGB0S4gIUQVpmn+O ++tA==
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=VId9ylHlNRhlodVLdr7zgN940QzoC2MgkBfRSoLoEdk=; b=fnxfslCeqzJuVHyDPtEcxMhGpop0c6i0Ofqi8Vl+dsukJRkKhEEjFUd8XiANEzAjUr ofKdB6KSlXzMz3M3qAEdu65kep7vvXRs0MjI32eGM1i3hUzFxZH5pcIYFfB1mTEabTcS sFnhqsVzmttYYySYMZF9nK0PVsxweZJcunUJYCGhovAPzAo5MW2a09pPs7yMo0V+E6Zg WmSYIZi3S8yaprQQuTPxx1qkHoN+iIXNjASykrBc3BphaFUNs7mBfi8rMS2PD6vsyG+k omDVYsQqv3ztplBTI/49J56Djas8Kua4crGOADdN63Pplrt5OFlwhVBM2qb8PRsYb03P pf2g==
X-Gm-Message-State: AG10YOSwlyzZoXX1r5cIJD0HALyNKFABiLmuuxbAcpL1pYxguGWSZoFVW9LJL+43LHmqHQ==
X-Received: by 10.107.129.16 with SMTP id c16mr24071159iod.181.1453838399596; Tue, 26 Jan 2016 11:59:59 -0800 (PST)
Received: from mail-ig0-f171.google.com (mail-ig0-f171.google.com. [209.85.213.171]) by smtp.gmail.com with ESMTPSA id kl9sm1911804igb.22.2016.01.26.11.59.58 for <rtcweb@ietf.org> (version=TLSv1/SSLv3 cipher=OTHER); Tue, 26 Jan 2016 11:59:58 -0800 (PST)
Received: by mail-ig0-f171.google.com with SMTP id mw1so59871442igb.1 for <rtcweb@ietf.org>; Tue, 26 Jan 2016 11:59:58 -0800 (PST)
MIME-Version: 1.0
X-Received: by 10.50.43.136 with SMTP id w8mr25288295igl.96.1453838398025; Tue, 26 Jan 2016 11:59:58 -0800 (PST)
Received: by 10.36.105.77 with HTTP; Tue, 26 Jan 2016 11:59:57 -0800 (PST)
In-Reply-To: <78C957DC-4659-49A9-B4B9-EFAD5641574F@phonefromhere.com>
References: <CA+9kkMDAL1mKqt7cTRmU4YqX2S5QN4RKn2cfbPaBeDgx=yiN0Q@mail.gmail.com> <CAD5OKxtvhaqx=H10=fUiGAjvnGAb_g89p2TZT9iNEg2F9k+6FA@mail.gmail.com> <CA+9kkMApyK4YPaWbQATy9zGfCOd3Dyfr8cY2amODgFE4XQCA=A@mail.gmail.com> <CAD5OKxtDGUv3akJTe6ZRYNhQN=SMY_R+GeV_Kg67Y6EYq+aV=A@mail.gmail.com> <CA+9kkMCvAcxnc=QdGvTm3=VNOQ3TtO+d8PfbfVA8sLeEA6rRqg@mail.gmail.com> <CAD5OKxtu-dsahdwL7t7Br34V-guqKmsdTsztOK_8sSsvWYsF=g@mail.gmail.com> <CA+9kkMBxbmGggCUaBPVtsJ7o3ZvBS=xvDKkmvfJxdVbM8NgiEQ@mail.gmail.com> <CAD5OKxvaJTRtfDQLwpvi+etdh8ZQvP5eRROSvRY2Hg-Uasisww@mail.gmail.com> <F9264ABC-E856-44B4-9E7E-8359B5D39A55@cisco.com> <78C957DC-4659-49A9-B4B9-EFAD5641574F@phonefromhere.com>
Date: Tue, 26 Jan 2016 14:59:57 -0500
X-Gmail-Original-Message-ID: <CAD5OKxu9_W97uc_rN_1c=Q8Dz713wDe5ccA2zFfPM-3a3YwznQ@mail.gmail.com>
Message-ID: <CAD5OKxu9_W97uc_rN_1c=Q8Dz713wDe5ccA2zFfPM-3a3YwznQ@mail.gmail.com>
From: Roman Shpount <roman@telurix.com>
To: Tim Panton <tim@phonefromhere.com>
Content-Type: multipart/alternative; boundary="089e011602a8467b10052a42218e"
Archived-At: <http://mailarchive.ietf.org/arch/msg/rtcweb/Gzu5Vt0lrakQt2B95SMGe5GyP7M>
Cc: "Cullen Jennings (fluffy)" <fluffy@cisco.com>, "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Working group last call for draft-ietf-rtcweb-audio
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: <https://mailarchive.ietf.org/arch/browse/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, 26 Jan 2016 20:00:06 -0000

On Tue, Jan 26, 2016 at 7:15 AM, Tim Panton <tim@phonefromhere.com> wrote:

>
> More specifically - Under what circumstances will we need them where
> the same result couldn’t be achieved by injecting the correct notes into
> the stream using webAudio?
> It has been suggested that webaudio tone generation might not work with
> certain sets of codecs.
> But surely the (few) legacy systems (coal mines for example) that use A-D
> will be using G711
> for which tone generation should work well.
>
> (I might add that tone _detection_ can also be done in webaudio so
> developers have a symmetrical solution).
>

Any tone generated using inband audio will be less reliable then
telephone-events tone. For telephone-events 3 or more packets in a row need
to be lost for the tone to be lost or interrupted. For inband loosing a
single packet can break tone in two distinct tones. I am not even talking
about all the extra work and interop required to properly implement tone
generation. To generate all DTMF tone telephone-events you need no extra
code in the browser you need no additional code.

Finally, if you want WebRTC to be backwards compatible with RFC 2833 (which
is the most common implementation of telephone-events in PSTN universe),
then you will need to deal with this
https://tools.ietf.org/html/rfc2833#section-3.3:

   A compliant implementation MUST support the events listed in Table 1
   with the exception of "flash". If it uses some other, out-of-band
   mechanism for signaling line conditions, it does not have to
   implement the other events.


Here is table 1 (https://tools.ietf.org/html/rfc2833#section-3.10):

   Table 1 summarizes the DTMF-related named events within the
   telephone-event payload format.

                     Event  encoding (decimal)
                     _________________________
                     0--9                0--9
                     *                     10
                     #                     11
                     A--D              12--15
                     Flash                 16

                     Table 1: DTMF named events


So, all DTMF digits 0-9, *, #, A-D are required by RFC 2833.

So, if you want to break backwards compatibility please explain your
motivation. These tones (as well as all the other telephone-events) are
only needed for backwards compatibility. Implemented all or some of them
requires the same amount of effort. Not implementing all of them will make
life harder for the few people who use them.

Finally, I have wrote several other things regarding DTMF tone generation
which are considerably more important. Does everyone agree with the
following or no one cares:

Generated events MUST have duration of no more than 6000 ms and no less
than 40 ms with the recommended default duration of 100 ms for each tone.
The gap between events MUST be no less then 30 ms with the recommended
default duration of 70 ms. Event SHOULD start on a regular audio packet
border and event and gap duration SHOULD be rounded up to the next regular
audio packet border.

During the time events are generated no audio SHOULD be sent for the same
audio stream. When gaps between events are generated, silence
and not the background audio SHOULD be sent using regular audio encoding.

If multiple audio sampling rates are supported, audio/telephone-event
payload
SHOULD be present for each supported sampling rate. Endpoints SHOULD use
audio/telephone-event format parameters during the offer/answer to
indicate which events are supported.

Receivers MUST be able to consume any audio/telephone-event events
in such a way that it will not generate audio artifacts, jitter buffer
adjustments, payload mismatches, or invalid RTCP statistics calculation.
Receivers MAY generate audio corresponding to the received events
but are also allowed to discard them in a manner that does not affect
regular audio processing.

Regards,
_____________
Roman Shpount