RTCDTMFSender

The RTCDTMFSender interface provides a mechanism for transmitting DTMF codes on a WebRTC RTCPeerConnection. You gain access to the connection's RTCDTMFSender through the RTCRtpSender.dtmf property on the audio track you wish to send DTMF with.

The primary purpose for WebRTC's DTMF support is to allow WebRTC-based communication clients to be connected to a public-switched telephone network (PSTN) or other legacy telephone service, including extant voice over IP (VoIP) services. For that reason, DTMF can't be used between two WebRTC-based devices, because there is no mechanism provided by WebRTC for receiving DTMF codes.

Properties

RTCDTMFSender.toneBuffer Read only
A DOMString which contains the list of DTMF tones currently in the queue to be transmitted (tones which have already been played are no longer included in the string). See toneBuffer for details on the format of the tone buffer.

Methods

RTCDTMFSender.insertDTMF()
Given a string describing a set of DTMF codes and, optionally, the duration of and inter-tone gap between the tones, insertDTMF() starts sending the specified tones. Calling insertDTMF() replaces any already-pending tones from the toneBuffer. You can abort sending queued tones by specifying an empty string ("") as the set of tones to play.

Events

Listen to these events using addEventListener() or by assigning an event listener to the oneventname property of this interface.

tonechange
The tonechange event is sent to the RTCDTMFSender instance's event handler to indicate that a tone has either started or stopped playing.
Also available using the ontonechange event handler property.

Example

See the article Using DTMF with WebRTC for a full example.

Specifications

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

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
RTCDTMFSenderChrome Full support 27Edge Full support ≤79Firefox Full support 52IE No support NoOpera Full support YesSafari ? WebView Android Full support 4.4Chrome Android Full support 27Firefox Android Full support 52Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 1.5
canInsertDTMFChrome Full support 27Edge Full support ≤79Firefox ? IE No support NoOpera Full support YesSafari ? WebView Android Full support YesChrome Android Full support 27Firefox Android ? Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 1.5
insertDTMFChrome Full support 27Edge Full support ≤79Firefox Full support 52IE No support NoOpera Full support YesSafari ? WebView Android Full support 4.4Chrome Android Full support 27Firefox Android Full support 52Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 1.5
ontonechangeChrome Full support 27Edge Full support ≤79Firefox Full support 52IE No support NoOpera Full support YesSafari ? WebView Android Full support YesChrome Android Full support 27Firefox Android Full support 52Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 1.5
toneBufferChrome Full support 27Edge Full support ≤79Firefox Full support 52IE No support NoOpera Full support YesSafari ? WebView Android Full support 4.4Chrome Android Full support 27Firefox Android Full support 52Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 1.5
tonechange eventChrome Full support 27Edge Full support ≤79Firefox Full support 52IE No support NoOpera Full support YesSafari ? WebView Android Full support YesChrome Android Full support 27Firefox Android Full support 52Opera Android Full support YesSafari iOS ? Samsung Internet Android Full support 1.5

Legend

Full support
Full support
No support
No support
Compatibility unknown
Compatibility unknown

See also