The RTCDTMFToneChangeEvent interface represents events sent to indicate that DTMF tones have started or finished playing. This interface is used by the tonechange event.


In addition to the properties of Event, this interface offers the following:

RTCDTMFToneChangeEvent.tone Read only
A DOMString specifying the tone which has begun playing, or an empty string ("") if the previous tone has finished playing.


Returns a new RTCDTMFToneChangeEvent. It takes two parameters, the first being a DOMString representing the type of the event (always "tonechange"); the second a dictionary containing the initial state of the properties of the event.


Supports the methods defined in Event. There are no additional methods.


This snippet is derived loosely from the full, working example you'll find in When a tone finishes playing in Using DTMF with WebRTC. It appends each tone to a display box as it's played, and, once all tones have been sent, re-enabled a previously-disabled "Send" button, allowing the next DMTF string to be entered.

dtmfSender.addEventListener("change", function(event) {
  if (event.tone !== "") {
    dialStringBox.innerText += event.tone;
  } else {
    sendDTMFButton.disabled = false;
}, false);


Specification Status Comment
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCDTMFToneChangeEvent' in that specification.
Candidate Recommendation Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support Yes Yes52 No Yes ?
tone Yes Yes52 No Yes ?
RTCDTMFToneChangeEvent() Yes Yes52 No Yes ?
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support ? Yes Yes52 ? ? ?
tone ? Yes Yes52 ? ? ?
RTCDTMFToneChangeEvent() ? Yes Yes52 ? ? ?

See also

Document Tags and Contributors

 Contributors to this page: fscholz, myf, Sheppy
 Last updated by: fscholz,