---
title: "RTCDTMFSender | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

# Interface 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.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender)

interface RTCDTMFSender {  
    [canInsertDTMF](#caninsertdtmf): boolean;  
    [ontonechange](#ontonechange):  
        | ((this: RTCDTMFSender, ev: [RTCDTMFToneChangeEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.RTCDTMFToneChangeEvent/)) \=> any)  
        | null;  
    [toneBuffer](#tonebuffer): string;  
    [addEventListener](#addeventlistener-1)<[K](#addeventlistenerk) extends "tonechange"\>(  
        type: [K](#addeventlistenerk),  
        listener: (this: RTCDTMFSender, ev: [RTCDTMFSenderEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.RTCDTMFSenderEventMap/)\[[K](#addeventlistenerk)\]) \=> any,  
        options?: boolean | AddEventListenerOptions,  
    ): void;  
    [addEventListener](#addeventlistener-2)(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | AddEventListenerOptions,  
    ): void;  
    [dispatchEvent](#dispatchevent-1)(event: Event): boolean;  
    [insertDTMF](#insertdtmf-1)(tones: string, duration?: number, interToneGap?: number): void;  
    [removeEventListener](#removeeventlistener-1)<[K](#removeeventlistenerk) extends "tonechange"\>(  
        type: [K](#removeeventlistenerk),  
        listener: (this: RTCDTMFSender, ev: [RTCDTMFSenderEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.RTCDTMFSenderEventMap/)\[[K](#removeeventlistenerk)\]) \=> any,  
        options?: boolean | EventListenerOptions,  
    ): void;  
    [removeEventListener](#removeeventlistener-2)(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | EventListenerOptions,  
    ): void;  
}

#### Hierarchy

-   EventTarget
    -   RTCDTMFSender

##### Index

### Properties[](#properties)

[canInsertDTMF](#caninsertdtmf) [ontonechange](#ontonechange) [toneBuffer](#tonebuffer)

### Methods[](#methods)

[addEventListener](#addeventlistener) [dispatchEvent](#dispatchevent) [insertDTMF](#insertdtmf) [removeEventListener](#removeeventlistener)

## Properties[](#properties-1)

### `Readonly`canInsertDTMF[](#caninsertdtmf)

canInsertDTMF: boolean

The **`canInsertDTMF`** read-only property of the RTCDTMFSender interface returns a boolean value which indicates whether the RTCDTMFSender is capable of sending DTMF tones over the RTCPeerConnection.

[MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/canInsertDTMF)

### ontonechange[](#ontonechange)

ontonechange: ((this: RTCDTMFSender, ev: [RTCDTMFToneChangeEvent](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.RTCDTMFToneChangeEvent/)) \=> any) | null

[MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/tonechange_event)

### `Readonly`toneBuffer[](#tonebuffer)

toneBuffer: string

The RTCDTMFSender interface's **`toneBuffer`** property returns a string containing a list of the DTMF tones currently queued for sending to the remote peer over the RTCPeerConnection. To place tones into the buffer, call insertDTMF().

[MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/toneBuffer)

## Methods[](#methods-1)

### addEventListener[](#addeventlistener)

-   addEventListener<[K](#addeventlistenerk) extends "tonechange"\>(  
        type: [K](#addeventlistenerk),  
        listener: (this: RTCDTMFSender, ev: [RTCDTMFSenderEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.RTCDTMFSenderEventMap/)\[[K](#addeventlistenerk)\]) \=> any,  
        options?: boolean | AddEventListenerOptions,  
    ): void[](#addeventlistener-1)
    
    The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
    
    #### Type Parameters
    
    -   K extends "tonechange"
    
    #### Parameters
    
    -   type: [K](#addeventlistenerk)
    -   listener: (this: RTCDTMFSender, ev: [RTCDTMFSenderEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.RTCDTMFSenderEventMap/)\[[K](#addeventlistenerk)\]) \=> any
    -   `Optional`options: boolean | AddEventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.addEventListener
    
-   addEventListener(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | AddEventListenerOptions,  
    ): void[](#addeventlistener-2)
    
    The **`addEventListener()`** method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/addEventListener)
    
    #### Parameters
    
    -   type: string
    -   listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/)
    -   `Optional`options: boolean | AddEventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.addEventListener
    

### dispatchEvent[](#dispatchevent)

-   dispatchEvent(event: Event): boolean[](#dispatchevent-1)
    
    The **`dispatchEvent()`** method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order. The normal event processing rules (including the capturing and optional bubbling phase) also apply to events dispatched manually with dispatchEvent().
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/dispatchEvent)
    
    #### Parameters
    
    -   event: Event
    
    #### Returns boolean
    
    Inherited from EventTarget.dispatchEvent
    

### insertDTMF[](#insertdtmf)

-   insertDTMF(tones: string, duration?: number, interToneGap?: number): void[](#insertdtmf-1)
    
    The **`insertDTMF()`** method of the RTCDTMFSender interface sends DTMF tones to the remote peer over the RTCPeerConnection.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/RTCDTMFSender/insertDTMF)
    
    #### Parameters
    
    -   tones: string
    -   `Optional`duration: number
    -   `Optional`interToneGap: number
    
    #### Returns void
    

### removeEventListener[](#removeeventlistener)

-   removeEventListener<[K](#removeeventlistenerk) extends "tonechange"\>(  
        type: [K](#removeeventlistenerk),  
        listener: (this: RTCDTMFSender, ev: [RTCDTMFSenderEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.RTCDTMFSenderEventMap/)\[[K](#removeeventlistenerk)\]) \=> any,  
        options?: boolean | EventListenerOptions,  
    ): void[](#removeeventlistener-1)
    
    The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
    
    #### Type Parameters
    
    -   K extends "tonechange"
    
    #### Parameters
    
    -   type: [K](#removeeventlistenerk)
    -   listener: (this: RTCDTMFSender, ev: [RTCDTMFSenderEventMap](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.RTCDTMFSenderEventMap/)\[[K](#removeeventlistenerk)\]) \=> any
    -   `Optional`options: boolean | EventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.removeEventListener
    
-   removeEventListener(  
        type: string,  
        listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/),  
        options?: boolean | EventListenerOptions,  
    ): void[](#removeeventlistener-2)
    
    The **`removeEventListener()`** method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
    
    [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventTarget/removeEventListener)
    
    #### Parameters
    
    -   type: string
    -   listener: [EventListenerOrEventListenerObject](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.EventListenerOrEventListenerObject/)
    -   `Optional`options: boolean | EventListenerOptions
    
    #### Returns void
    
    Overrides EventTarget.removeEventListener
