- From: Stefan Hakansson LK <stefan.lk.hakansson@ericsson.com>
- Date: Tue, 13 Dec 2011 10:51:50 +0100
- To: Justin Uberti <juberti@google.com>
- CC: "public-webrtc@w3.org" <public-webrtc@w3.org>
On 12/12/2011 06:59 PM, Justin Uberti wrote: > > > On Mon, Dec 12, 2011 at 10:01 AM, Stefan Hakansson LK > <stefan.lk.hakansson@ericsson.com > <mailto:stefan.lk.hakansson@ericsson.com>> wrote: > > Top posting (sorry): > > is there a problem suporting long tones? With the proposal further > below, it is fine to specify different duration, but for a situation > where the user enters DTMF by use of some kind of (virtual) dial > pad, and clicks on say "2" but does not release the mouse for a long > time, then you could imagine that there is a need to start inserting > DTMF before you know the length. > > This would call for something like > > beginDTMF("1"); //e.g. called on mousedown > endDTMF(); //e.g. called on mouseup > > I think RFC 4733 has support for this kind of unknown length DTMF. > > > This was discussed a couple weeks back, but the consensus at the time > was that this wasn't needed by our current set of use cases. OK, I missed that. > > However, I'd be open to adding a cancelDTMF() method to stop playing any > current or queued DTMF. This could allow for mouseup/down handling > without complicating the simple case that just needs a single function call. Well, my view then would be to just do what is proposed below for the time being, and add more in a second release if there is need/interest. > > > > Stefan > > > > On 12/12/2011 03:48 PM, Harald Alvestrand wrote: > > On 12/09/2011 11:07 AM, Stefan Hakansson LK wrote: > > On 12/09/2011 07:59 PM, Justin Uberti wrote: > > > > On Thu, Dec 1, 2011 at 8:20 AM, Stefan HÃ¥kansson LK > <stefan.lk.hakansson@ericsson.__com > <mailto:stefan.lk.hakansson@ericsson.com> > <mailto:stefan.lk.hakansson@__ericsson.com > <mailto:stefan.lk.hakansson@ericsson.com>>> wrote: > > So, a concrete proposal: > > we define the operation "insertDTMF" that is > available on > AudioMediaStreamTrack's (or should that be named > AudioStreamTrack?): > > insertDTMF("1") // plays tone 1 for 50 ms > insertDTMF("2", 200) // plays tone 2 for 200 ms > insertDTMF("123") // plays tones 1, 2, 3 in > succession, each for > 50 ms > insertDTMF("456", 200) // plays tones 4, 5, 6 in > succession, > each for 200 ms > > (I prefer "insert" over "send" as nothing is sent > unless the > MediaStream that the AudioStreamTrack belongs to is > added to a > PeerConnection) > > > I think the name "sendDTMF" is slightly more intuitive, > but I can see > your point too. If others prefer sendDTMF I'm fine with > that. > > > "insertDTMF" leads to the insertion of the actual tones > in the > audio, so if the MediaStream in question is attached > to an audio > element, those tones would be played out. This has > the advantage > that it is much simpler to locally give audio > feedback to the > user that dtmf is sent - when I use DTMF on my phone > I hear the > tones. > > > Not sure what you mean here. Do you mean if the local > media stream > was hooked up to an <audio/>, the tones would be played > out? If so, > wouldn't that mean that your own voice is being fed back > to the audio > output (which I'm sure we don't want)? > > I meant like this: > > Imagine you do "insertDTMF()" on an audio track of an > outgoing stream > (to send DTMF to the other end), if you now want an audio > feedback to > the person sending the DTMF, you could simultaneously do > "insertDTMF" > on the audio track of the incoming MediaStream (assuming a > bidirectional session). That would lead to that you hear the > tones > locally as you push the dial pad to generate them. > > So, you would not hear yourself! > > This (application uses insertDTMF on the stream heading towards the > speakers) seems right to me. Whether or not tones are played back > locally should be the application's decision, not the API's. > > Harald > > > > >
Received on Tuesday, 13 December 2011 10:10:07 UTC