# Auto Provision Yealink Expansion Module with Cloud Voice

A Yealink expansion module clips onto a Yealink desk phone to give it a second bank of programmable keys. After the phone is provisioned by Cloud Voice, you can define the module's keys centrally and have them delivered to the device on the next provision. This page uses the Yealink T53W as its worked example, but the same steps apply to any supported pairing.

## Supported phones and templates

Before you start, confirm that your module, phone model, and provisioning template match. Each module works only with certain phones, and each phone family needs its default template at or above a minimum version.

| Expansion module | Phone model | Provisioning template |
|------------------|-------------|-----------------------|
| EXP40 | T46S, T48S | YSDP_YealinkT4 (`1.0.5` or later) |
| EXP40 | T46G, T48G | YSDP_YealinkT4xG (`1.0.4` or later) |
| EXP43 | T43U, T46U, T48U | YSDP_YealinkT4 (`1.0.5` or later) |
| EXP50 | SIP-T53, SIP-T53W, SIP-T54W, SIP-T57W | YSDP_YealinkT5 (`1.0.5` or later) |
| EXP50 | SIP-T56A | YSDP_YealinkT56 (`1.0.5` or later) |
| EXP50 | SIP-T58, SIP-T58W | YSDP_YealinkT58 (`1.0.5` or later) |
| EXP55 | SIP-T73W, SIP-T73U, SIP-T74W, SIP-T74U, SIP-T77U | YSDP_YealinkT7 (`1.0.0` or later) |
| EXP55 | SIP-T85W, SIP-T87W | YSDP_YealinkT8 (`1.0.0` or later) |
| EXP55 | SIP-T88W, SIP-T88V | YSDP_YealinkT88X (`1.0.0` or later) |

## Before you begin

- Attach the Yealink expansion module to a compatible Yealink phone.
- Make sure the phone is already provisioned by Cloud Voice through auto provisioning. For the initial setup, see [Auto Provision a Yealink IP Phone](/pbx/ip-phone-configuration-guide/auto-provision-yealink-ip-phone-with-cloud-voice-cloud/).

## Which method to use

There are two ways to assign the module's function keys:

- **In the management portal**: pick a type for each key from a menu and configure it one at a time. This is the quickest route for a small number of keys.
- **In a custom provisioning template**: write the keys directly as configuration parameters and apply them in bulk. Choose this if you already know the phone's raw parameters or want to reuse the same layout across devices.

Either way, the keys spill over onto the module the same way: once you run past the buttons built into the phone, the remaining keys land on the attached module.

:::note
Function keys that go beyond the phone's own programmable buttons are applied to the connected expansion module. The Yealink T53W, for instance, has 21 programmable keys, so the 22nd key onward takes effect on the module.
:::

## Method 1: Set keys in the management portal

With this method you assign each key by choosing its type and behavior directly in the portal.

:::note
Through the management portal, Cloud Voice lets you define up to **120** function keys.
:::

1. Add and configure the function keys.

   1. Sign in to the management portal and go to **Extension and Trunk > Extension**, then edit the extension the phone uses.
   2. Open the **Function Keys** tab.
   3. Click **Add** and set up a key for the module.

      
      ![Cloud Voice, function key row with type, value, and label fields for a Yealink expansion module](/images/pbx/set-up-function-keys-for-expansion-module.png)

      - **Type**: Select the kind of key.
      - **Value**: Enter a value appropriate to the key type.
      - **Label**: Optional. Add text to show on the phone's LCD screen.

   4. Click **Save**.

2. Reprovision the phone so the keys are pushed to it.

   :::caution
   Reprovisioning restarts the phone to load the new configuration, which briefly interrupts any call in progress. Do this while the extension is idle.
   :::

   1. Go to **Auto Provisioning > Phones**.
   2. Click the reprovision icon ![reprovision icon](/images/pbx/reprovision.png) next to the phone.
   3. In the pop-up window, click **OK**.

## Method 2: Set keys with a custom template

If you are comfortable with the phone's configuration parameters, you can define the module's function keys inside a template. Cloud Voice then applies those settings to the phone and the module together, which saves effort when you repeat the same layout.

:::caution
A custom template is built on top of the default template for the phone model, so update that default template to the [required version](#supported-phones-and-templates) first. You will find it under **Auto Provisioning > Resource Repository > Default Templates**.
:::

1. Create the custom provisioning template.

   1. Go to **Auto Provisioning > Resource Repository > Custom Templates**.
   2. Click **Add**.
   3. In the **Basic** section, fill in the core details:

      - **Template Name**: Give the template a name you will recognize.
      - **Source Default Template**: Search for and select the default template for your phone model. This example uses **YSDP_YealinkT5**.
      - **Template Type**: Select **Advanced**.
      - **Remark**: Optional. Add a note about the template.

   4. Optional: Adjust the **Preference**, **Distinctive Ringtone**, **Codecs**, and **LDAP Directory** (Lightweight Directory Access Protocol, used to load a shared network contact directory onto the phone) sections to suit your needs.
   5. In the second text box of the **Customize Configuration Parameters in Text** section, select the phone model, then add the module's function-key parameters by following that model's configuration parameter reference.

      :::note
      Function keys that go beyond the phone's own programmable buttons are applied to the connected expansion module. The Yealink T53W, for instance, has 21 programmable keys, so the 22nd key onward takes effect on the module.
      :::

      ![Custom template editor with function-key parameters entered for a Yealink expansion module](/images/pbx/autop-expansion-module-functionkey.png)

2. Apply the template to the phone.

   1. Go to **Auto Provisioning > Phones** and edit the phone.
   2. In the **Options** section, choose the template from the **Template** drop-down list.
   3. Click **Save**.

3. Reprovision the phone so the template takes effect.

   1. Go to **Auto Provisioning > Phones**.
   2. Click the reprovision icon ![reprovision icon](/images/pbx/reprovision.png) next to the phone.
   3. In the pop-up window, click **OK**.
