RTCDTMFSender: insertDTMF() method
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2020.
The insertDTMF() method of the RTCDTMFSender interface sends DTMF tones to the remote peer over the RTCPeerConnection.
Tones are sent asynchronously. Every time a tone starts or ends, a tonechange event is sent to the RTCDTMFSender.
You can call insertDTMF() at any time while the connection is active. Each call to insertDTMF() replaces any pending tones in the toneBuffer.
You can abort sending queued tones by specifying an empty string ("") as the set of tones to play.
Since insertDTMF() replaces the tone buffer, in order to add to the DTMF tones being played, it is necessary to call insertDTMF() with a string containing both the remaining tones (stored in the toneBuffer) and the new tones appended together.
Syntax
insertDTMF(tones)
insertDTMF(tones, duration)
insertDTMF(tones, duration, interToneGap)
Parameters
tones-
A string containing the DTMF codes to be transmitted to the recipient. Specifying an empty string as the
tonesparameter clears the tone buffer, aborting any currently queued tones. A comma character,in the string inserts a two-second delay. For example"12,34"will send tones for1and2, pause for two seconds, and then send3and4. Multiple commas add a longer delay, so,,will add four seconds. durationOptional-
The amount of time, in milliseconds, that each DTMF tone should last. This value must be between 40 ms and 6000 ms (6 seconds), inclusive. The default is 100 ms.
interToneGapOptional-
The length of time, in milliseconds, to wait between tones. The browser will enforce a minimum value of 30 ms (that is, if you specify a lower value, 30 ms will be used instead). The default is 70 ms.
Return value
None (undefined).
Exceptions
InvalidStateErrorDOMException-
Thrown if the DTMF tones cannot be sent because the track has been stopped or is in a read-only or inactive state.
InvalidCharacterErrorDOMException-
Thrown if one or more of the characters in
tonesis not valid DTMF (0-9,A-Z,#, or,).
Examples
>Using insertDTMF to send DTMF tones
This example shows how to use the insertDTMF() method to send tones over a WebRTC connection.
The code first checks if the canInsertDTMF property is defined, and if so, uses it to check whether inserting DTMF tones is supported.
If the feature is supported, insertDTMF() is called to insert a tone.
if (sender.dtmf.canInsertDTMF) {
const duration = 500;
sender.dtmf.insertDTMF("1234", duration);
} else {
console.log("DTMF function not available");
}
Specifications
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-RTCDTMFSender-insertDTMF> |
Browser compatibility
Loading…