> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # sendDigits > Sends DTMF digits on the call. ```ts sendDigits(dtmf): Promise ``` Sends DTMF tones on the call. Each character in the string is transmitted as a separate tone in order, with timing managed by the server. Accepted characters: digits `0`–`9`, `*`, `#`, and the `w` / `W` wait separators (the lowercase `w` inserts a short pause, the uppercase `W` a longer one). Any other character produces an error from the server. Requires the `sendDigit` capability — inspect [`call.capabilities$`](/docs/browser-sdk/v4/reference/webrtc-call/capabilities\$) before exposing a dialpad in your UI. ## **Parameters** **`dtmf`** `string` — required The digit string to send (e.g. `'1234#'`, `'1w234'`). Each character is transmitted as a separate tone. --- ## **Returns** `Promise` — resolves once the server has accepted the full string for playback. ## **Examples** ### Dial an extension after connection ```ts await call.sendDigits('1234#'); ``` ### Drive an IVR with pauses ```ts // '1' → wait → '2' → long wait → '#' await call.sendDigits('1w2W#'); ``` ### Hook a dialpad button ```ts dialpad.addEventListener('press', async (digit) => { await call.sendDigits(digit); }); ``` ## **See** * [`capabilities$`](/docs/browser-sdk/v4/reference/webrtc-call/capabilities\$) to check whether digit-sending is permitted on this call. > Sends DTMF digits on the call.