W3C home > Mailing lists > Public > public-orca@w3.org > September 2013

Re: DTMF API completed

From: Iñaki Baz Castillo <ibc@aliax.net>
Date: Tue, 3 Sep 2013 19:00:32 +0200
Message-ID: <CALiegfkJY-M92zUyL35ztYQ4tWbXHe5tE+1GyALtbPVPFKCY6w@mail.gmail.com>
To: Martin Thomson <martin.thomson@skype.net>
Cc: public-orca <public-orca@w3.org>
Hi Martin,


2013/9/3 Martin Thomson <martin.thomson@skype.net>:
> Unfortunately, this will be unable to produce DTMF that is compatible with any existing DTMF sender or receiver.  The problem is that the DTMFTrack is a standalone entity that does not associate with an existing audio track.


I don't see such a problem:


--------------------------------------------------
getUserMedia( {audio: true} )  =>  myStream

var conn = new RTCConnection( options );

conn.addStream( myStream );

var dtmfTrack;

dtmfTrack = conn.addDtmfTrack( );
or:
dtmfTrack = conn.addDtmfTrack( myStream );
or:
dtmfTrack = conn.addDtmfTrack( myStream.getAudioTracks[0] );

conn.tracks().forEach(function(track) {
  signalToRemote(JSON.stringify({ "track": track.getDescription() }));
});

// wait for full negotiation

dtmfTrack.insertDTMF("1234");
-----------------------------------------------------


The RTCDTMFTrack gets associated with an audio track and inherits its
same SSRC. And it gets its own RTCTrack within the RTCConnection so
can signal it to the remote (exactly as an audio track).





> I made a proposal to the W3C working group that looks similar to this API in many respects, but the DTMFTrack was a wrapper around AudioMediaStreamTrack.  It could equally be a wrapper around RTCTrack.  Inbound audio tracks are automatically wrapped, if they contain the DTMF codec description.


Do you mean, as an alternative approach, that DTMF feature could be
signaled as a separate codec within an audio track description (this
is, within the RTCTrack)?

That's indeed nice, but we still need the RTCConnection.onadddtmftrack
event and also the RTCDTMFTrack for both sending DTMFs and receiving
them, right?



> This has another properties that I believe to be important: the DTMF interfaces are completely standalone.  The rest of the API has no direct, visible knowledge of DTMF.

Could you explain that a bit more? I see no problem/limitation. Why do
you want that the rest of the API has knowledge of DTMF? we have
provided a specifiec RTCDTMFTrack class for that.


Regards.



-- 
Iñaki Baz Castillo
<ibc@aliax.net>
Received on Tuesday, 3 September 2013 17:01:19 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:39:21 UTC