> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cognigy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# sendDTMF

> Sends DTMF tones during an active call in the Click To Call SDK.

Sends dual-tone multi-frequency (DTMF) tones during an active call, for example, to respond to a menu with keypad input. You can send tones only after the remote party has answered the call. This method is available since SDK version 0.2.0.

## Signature

```typescript theme={null}
await client.sendDTMF(tones: string | number, options?: SendDTMFOptions);
```

## Parameters

| Parameter | Type | Description | Required |
| - | - | - | - |
| `tones` | `string \| number` | The tones to send. Valid characters are `0-9`, `A-D`, `#`, `*`, and `,`. If you pass a number, the SDK converts it to a string and removes leading zeros. To keep leading zeros, pass a string. | Yes |
| `options` | [`SendDTMFOptions`](/click-to-call/sdk/api-reference/types#senddtmfoptions) | Optional settings for the duration of the tones, the gap between them, and the transport. | No |

## Returns

`Promise<void>`

The promise resolves after the SDK passes the tones to the SIP library. It doesn't wait until the tones are played or until the remote party receives them.

## Throws

An error if there is no active session, if the call isn't established, or if the SIP library rejects the tones. The error messages start with `Failed to send DTMF:`, for example, `Failed to send DTMF: No active session to send DTMF`.

## Example

```typescript theme={null}
await client.sendDTMF('1');
```

### With Options

```typescript theme={null}
await client.sendDTMF('1234#', {
  duration: 200,
  interToneGap: 100,
  transportType: 'INFO'
});
```

## More Information

* [dtmfSent](/click-to-call/sdk/event-reference/dtmf-sent.md) event
* [SendDTMFOptions](/click-to-call/sdk/api-reference/types.md#senddtmfoptions)
* [sendInfo](/click-to-call/sdk/api-reference/send-info.md)
