You should really include these attributes in the WebIDL above.

I think that the signature here needs to be just a DOMString, with optional duration and gap numbers following.  I can see why you might like to accept digits as a sequence of tones, but that's just going to be complicated.  Creating a new class for this is probably overkill.

One very simple API has the `play()` function replace any outstanding tones (after any current tone finishes playing out, of course).  That allows for clearing (by sending the empty string), and still lets advanced users create complex tone maps by playing out a tone at a time.  This is even more so possible if you have the ontone event fire on outbound tracks when tones start playing out.