> For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

# sendDigits

> Sends DTMF digits on the call.

```ts
sendDigits(dtmf): Promise<void>
```

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**

The digit string to send (e.g. `'1234#'`, `'1w234'`). Each character is transmitted as a separate tone.

## **Returns**

`Promise<void>` — 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.