# Dialpad (Legacy) - End User Guide

> \[!NOTE]
>
> A fully supported, [native Flex Dialpad](/docs/flex/admin-guide/setup/voice/dialpad) is now available to replace this version.
>
> **Important:** Flex Dialpad does not support agent-to-agent direct calls or external transfers yet. If you need these functions, we recommend you continue to use this experimental Legacy Dialpad.
>
> Refer to [this guide](/docs/flex/admin-guide/setup/voice/dialpad-limitations) for more information

> \[!NOTE]
>
> The Dialpad is offered as a Pilot Feature and has some important limitations.
>
> With pilot releases, our focus is to verify functionality and gather feedback from a limited set of customers. Pilot Features are not covered by a Twilio SLA or support plan. Due to [known limitations](/docs/flex/admin-guide/setup/voice/dialpad-limitations), we don't recommend using these features in production.

With the dialpad, agents are able to:

* Make outbound calls to customers
* Add internal employees or an external number to a call
* Send [DTMF tones](/docs/glossary/what-is-dtmf) to connected calls

## **Enabling Dialpad**

You can enable the dialpad on the [pre-release features page](https://flex.twilio.com/admin/features) within Flex Admin. Dialpad calls require three parameters to be set:

* A phone number, which will be used as the `from` Caller ID
* A display name, which will appear to the agent as the primary name on the task
* A TaskRouter Workflow Sid, which identifies the workflow that will handle the task

> \[!NOTE]
>
> `From Number`
>
> The 'From Number' must be a number that Twilio recognizes as owned by your account. It must also be provided in the [E.164](/docs/glossary/what-e164) format. You can view your [Active Numbers](https://www.twilio.com/console/phone-numbers/incoming) within the Twilio Console.
>
> `Workflow Sid`
>
> Any TaskRouter Workflow will work, but it must reference `flexOutboundDialerTargetWorker`. If you haven't already customized your workflow to reference the Target Worker in a filter expression, then we will add this as the [first filter](/docs/taskrouter/lifecycle-task-workflows-and-assignment) at the beginning of your Workflow.

![Pilot features dialpad settings with enabled toggle, phone number, display name, and TaskRouter Workflow Sid fields.](https://docs-resources.prod.twilio.com/486591b8dd88304985c54681c24248ded346f108790cc518fe2c93524bf3127d.png)

## **Placing Calls**

The dialpad is accessed from the 'Dialpad' menu item, identified by a phone icon. You can type a phone number or use the buttons to provide a number to dial.

![Twilio Flex dialpad with phone icon highlighted and number 8675309 entered.](https://docs-resources.prod.twilio.com/df664d1414944fc5fe3858dc54f9ddaadd68c041e656aa1fe285f61e3af0818b.png)

A menu on the dialpad also allows you to quickly place an outbound call to another user within the contact center. When the call is active, the agent will receive and auto-accept a task. Their normal call controls will display, and the task will be identified with the *Display Name* provided within the dialpad configuration.

![Twilio Flex interface showing an active outbound call task with a duration of 39 seconds.](https://docs-resources.prod.twilio.com/6fff2977917839a492e45955f31ecbb440e8a6a68b8ffcb7bacafa45c244a540.png)

### Adding other Agents or External Numbers to a Call

You can add additional participants to a live call placed with the dialpad. To add a participant:

* Place a call with the dialpad
* Click on the +people icon to open a dialpad within the call controls
* Dial a new number or select an agent to add to the live call

![Flex Outbound call screen with add participant button highlighted.](https://docs-resources.prod.twilio.com/f7fc791830199afa6bb3a2c461b3c94630a6c92ba07ca9dc8b7920f8464f6a9f.png)

## Troubleshooting Dialpad Calls

**1.** Check your *From Number*

Your *From Number* must be a number registered with your Twilio Account and provided in E.164 format. If you attempt to place a dialpad call with an invalid *From Number*, you will receive a [Twilio Debugger](https://www.twilio.com/console/debugger) warning: `failed to add participant to conference`

**2.** Check your TaskRouter configuration

When the dialpad is enabled, we update your TaskRouter workflow with a Dialpad filter to handle task assignment to the agent who placed the call. Represented in JSON, the filter would look like:

```javascript
{
   "filter_friendly_name":"Dialpad",
   "expression":"flexOutboundDialerTargetWorker != null",
   "targets":[
      {
         "expression":"task.flexOutboundDialerTargetWorker == worker.contact_uri",
         "queue":"WQxxyy"
      }
   ]
}
```

![Dialpad settings with task matching and routing steps for outbound dialer.](https://docs-resources.prod.twilio.com/f90d9d97f9eb39d09c0319160946f193e963d743446ceb1fafebf45dd6b79788.png)

There are a few reasons a workflow may not get a dialpad call to your agent:

* Your agent may be `Unavailable`, or they may already be assigned a task on the `custom1` channel
* Your Dialpad workflow filter may be ordered after another workflow expression. If the dialpad task matches another filter expression first, then it may get assigned to a different agent.
* The queue associated with your Dialpad workflow filter may not contain the intended agent. We attempt to associate the workflow filter with the **Everyone** queue that is provisioned on account setup. But if this queue has been repurposed or deleted, then you may need to adjust the workflow filter.

**3**. Check your task channels

The Dialpad creates tasks on the `custom1` task channel. If this channel does not exist, you can create it using the [REST API](/docs/taskrouter/api/task-channel) or using the Twilio Console. Make sure that your agents have at least a capacity of 1 on this channel.
