- From: Adam Bergkvist <adam.bergkvist@ericsson.com>
- Date: Mon, 13 Aug 2012 10:33:17 +0200
- To: Randell Jesup <randell-ietf@jesup.org>
- CC: "public-webrtc@w3.org" <public-webrtc@w3.org>
On 2012-08-10 18:03, Randell Jesup wrote:
> On 8/10/2012 11:49 AM, Martin Thomson wrote:
>> On 10 August 2012 05:49, Adam Bergkvist <adam.bergkvist@ericsson.com> wrote:
>
>>> I don't see any reason why the DtmfAudioStreamTrack needs to be a
>>> MediaStreamTrack. We could simply have an object that's used as a remote to
>>> insert and receive DTMF on associated MediaStreamTrack objects.
>>>
>>> [Constructor(MediaStreamTrack outgoingAudioTrack,
>>> optional MediaStreamTrack incomingAudioTrack)]
>>> interface DtmfTransceiver : EventTarget {
>>> void playTones (DOMString tones,
>>> optional unsigned long duration = 100);
>>> void startTone (DOMString tone);
>>> void endTone ();
>>>
>>> attribute Function? ontone;
>>> };
>>
>> This also works. The complication here is for the browser
>> implementation: audio tracks will all need to know about DTMF so that
>> they can carry it. There would be browser-private interfaces for
>> sending and receiving tones that are only exposed once the descriptor
>> is added. Sure, this would be hidden from users, but the core audio
>> track implementation would carry the burden of DTMF support. That
>> negates the benefits of isolation for the browser implementation.
>>
>> I don't follow your reasoning for having two tracks attached to the
>> tranceiver. Can you explain how that would be useful?
>
> The incoming track would be for local echo. Using an audio element in
> the app for local echo invites the possibility of the local tone not
> being echo-cancelled and leaking into the outbound stream (especially if
> the developer guesses wrong at the length/start-time of the outgoing
> 'tone'), causing possible double-detection in an IVR. Everyone I've seen
> who puts a number pad in a phone or softphone does something in audio
> when you hit one (generic beep or DTMF tone normally), so one would
> expect anyone building an app which expects to access PSTN gateways to
> include that. This makes it easier for them to not shoot themselves in
> the foot. It's not mandatory, but likely would be a source of
> frustration and odd hard-to-reproduce bugs and possibly
> works-in-one-browser but fails 1-in-20-times in another browser.
That's one use. The idl also has an ontone event listener attribute
which I interpret as a way for a browser to get events when DTMF tones
are received. So the track for incoming tones needs to be specified.
Again, I don't think that functionality is top priority but it was
present in Martin's idl so I kept it.
/Adam
Received on Monday, 13 August 2012 08:33:41 UTC