- From: Stefan Hakansson LK <stefan.lk.hakansson@ericsson.com>
- Date: Fri, 16 Nov 2012 14:30:08 +0100
- To: public-webrtc@w3.org
I think this is starting to become baked enough to be incorporated in the Editor's draft. A couple of minor comments in-line. Stefan On 11/16/2012 12:56 PM, Harald Alvestrand wrote: > I realized that I'd forgotten about the callback / event aspect of the > DTMFSender! > > Feedback so far: > - No need to inherit from MediaStreamTrack > - Name's ugly, but we can live with it > > If we don't need to inherit, name can be a little nicer. I like to keep > the RTC prefix. > > Modified version: > > On 11/14/2012 03:46 PM, Harald Alvestrand wrote: >> Takeaways from Lyon were that: >> >> - Executing DTMF needs reference to an audio track (to know where to >> send the data) and to a PeerConnection (to know that we've >> successfully negotiated use of the DTMF codec). >> - The WG preferred an "object oriented" model: creating a DTMF handler >> object, rather than the "fortran" approach of having all functions >> directly on the PeerConnection. >> >> Suggested edits, delta from the October 19 version of the spec: >> >> - In section 8.4, rename AudioMediaStreamTrack to RTCDTMFSender. >> Remove inheritance. >> Add the following text: >> >> A RTCDTMFSender is created by calling the createDTMFSender() method on >> a PeerConnection. This constructs an object that exposes the functions >> required to send DTMF. > NEW IN THIS VERSION: > > Add to RTCDTMFSender: > > attribute EventHandler ontonechange; > > Add text under 8.4.2 "InsertDTMF": > > When InsertDTMF is called, do the following: > > 1. If the associated MediaStreamTrack is not connected to the > associated PeerConnection, return. > 2. If canInsertDTMF is false, return. > 3. Set the value of the tone buffer to the "tones" argument. > Return, but continue the following steps asynchronously. > > The following steps take place asynchronously. > 4. Start playout of the tone on the associated RTP media stream, > using the appropriate codec. > 5. Fire a "tonechange" event at the object, with an event parameter > consisting of the first character > of the tone buffer. Remove the first character of the tone buffer. > 6. If the tone buffer is empty, fire a "tonechange" event at the > object, with an empty string as > its parameter, and stop. > 7. Schedule a task for <duration> milliseconds later, which will > repeat steps 4-7. Should not all the above be moved to some other section (it is not a MediaStreamTrack any more)? > > > Wordsmithing is of course needed. > >> >> >> - In section 4.3.2, add the function >> >> RTCDTMFSendingMediaStreamTrack createDTMFSender(MediaStreamTrack track); >> >> - In section 4.3.2.2, add the paragraph >> >> createDTMFSender >> >> The createDTMFSender() creates an RTCDTMFSendingMediaStreamTrack that s/RTCDTMFSendingMediaStreamTrack/RTCDTMFSender/ >> references the given MediaStreamTrack. The MediaStreamTrack MUST be an >> element of a MediaStream that's currently in the PC's localStreams >> attribute; if not, throw an Illegal Argument Exception. [NOTE - get >> correct name for exception before inserting] >> > >
Received on Friday, 16 November 2012 13:30:36 UTC