- From: Randell Jesup <randell-ietf@jesup.org>
- Date: Fri, 10 Aug 2012 12:03:35 -0400
- To: public-webrtc@w3.org
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. -- Randell Jesup randell-ietf@jesup.org
Received on Friday, 10 August 2012 16:06:00 UTC