Remote Provisioning of Yealink Phones for Microsoft Teams — YMCS vs TAC Configuration Profiles

Remote Provisioning of Yealink Phones for Microsoft Teams — YMCS vs TAC Configuration Profiles

If you have a bunch of Teams Certified Yealink Phones to manage and you want to push configurations (potentially in bulk) without physical or network access to the device’s administration web GUI (accessed via the IP address of the phone) you have two options:

Various Models of Teams Certified Yealink IP Phones

Both provide a mechanism to configure parameters on phones in bulk remotely, with no direct network access to the phones.

TL;DR — YMCS does a much better job than Configuration Profiles

This exploration provides a high-level exploration and compelling conclusion of why you should use YMCS as the complementary tool to Teams Admin Center to manage and configure your Yealink ipPhones and avoid using Configuration Profiles.

Let’s first explore how both methods work.

Configuration Profiles in Teams Admin Center

In the Teams Admin Center (TAC), under Teams Devices > Phones you will find the Configuration Profiles Tab:

These profiles are a collection of generic settings such as language, timezone, display settings and network settings. These profiles can be applied on any type of Phone (ex. AudioCodes, Poly)

Profiles can be given a name and description. And can then be assigned to the device.

When administrators assign Configuration Profiles to Phones, an update is automatically queued for those devices. You can see the status of a profile update via the History tab of the phone:

Devices assigned a configuration profile work similarly to policies. They inherit the settings specified by the configuration profile. In other words, say I have 100 devices with the “NYC Office” Profile assigned and I decide to change the display settings for that profile, all 100 devices in that NYC office will be queued to be updated to reflect the changes made to that Profile.

☝️Don’t confuse Configuration Profiles with iPhone Policies
ipPhone Policies are tied to a user or resource account that is signed into the phone and control things like the Sign-in Mode, Hotdesking or “Better Together”.
Configuration Profiles are assigned to the phone directly and control settings on the phone itself such as language, time, display and network settings.

YMCS is Yealink’s solution for deploying, upgrading, monitoring and troubleshooting devices. YMCS allows you to configure your devices at different levels:

  • Global — Certain parameters can be set Globally no matter where / what model.
  • Single Device Configuration — Every Phone has a unique MAC. You can set a configuration specific for that MAC.
  • Group Configuration — Group a bunch of phones together to a single configuration. Manage that group/change that group of phones together. (ex. All phones belonging to the “support” group will have extended power savings office hours)
  • Site Configuration — Set a configuration to a Site (IP Range) (ex. all phones connecting from the France Office IP address will be set to French with French Time Zone)
  • Model Configuration — Set configurations based on the model of the device at a site.

There are two ways to edit the parameters:

Editing parameters of a device configuration via Text Edit

Or Graphical Edit

⚠️ Beware, many options are only available via the text editor.

So how do they compare?

Although YMCS also comes with all sorts of remote diagnostic features (ex. screen captures, packet captures, log downloads). This comparison focuses on the requirements around the configuration management (provisioning) of devices. Let’s dive in, shall we?

🏎️ Performance — 🥇 YMCS

  • Every change I attempted to make via YMCS was rather instantaneous.
  • Configuration Profiles in Microsoft Teams get Queued. Changes can sometimes take upwards of 45 minutes to apply!

🐞 Reliability (Bug-Free) — 🥇 YMCS

Configuration Profiles in Microsoft Teams do seem to fail from time to time.

Another interesting problem, there’s no way to remove the Configuration Profile once it’s applied. You can only apply a different profile to the phone.

⚠️ Serious Interop Problems Using Config Profiles in Teams

Lastly, Configuration Profiles have some serious interoperability problems with the Yealink Devices and YMCS. Once a configuration is applied to a phone, those parameters can no longer be changed via YMCS.

Even worse, admins get locked out of the web administration UI of the phone. I’m not sure if this was intentional, but it’s certainly undesirable and not documented anywhere, so feels more like a bug.

YMCS comes with its own set of quirks. The English is sometimes pretty bad, the UI is in serious need of tooltips at times and I’ve noticed that pages can sometimes show out-of-date information requiring a refresh.

Still, this is an easy win for YMCS.

💰 Price — 🥇 Teams Admin Center

According to Yealink’s pricelist, YMCS is free for 3 years (for now) for environments with less than 1000 devices. Within the fine print, they reserve to change this 3-year promo at any time and will provide a 6-month notice.

Any org with over 1000 devices or whose 3-year term expired will have to pay $4.90 for an essential license or $9.90 for a Professional.

Essential: Includes functionality such as Device List, Firmware and Resource Management, Account Management, Order Management, Configuration, Site Management, Timer Task, Running State (Dashboard), Operation Log, and Sub-account.

YMCS-Professional: Everything above + Alarm Management, Call Statistics and Diagnostics.

On the Teams Admin Center, it’s quite simple — it’s included with teams. There is no additional cost for using Configuration Profiles in Teams.

⚙️ Configuration Options — 🥇 YMCS

Although Configuration Profiles allow you to configure some of the popular options such as:

  • Language
  • Timezone
  • Device Lock Pin
  • Display Settings

It really seems like a subset of the most common settings that phones have across all vendors (Yealink, AudioCodes, Poly) Anything extra that is really specific to the Yealink Device (ex. uploading custom firmware, or setting advanced network settings) will require you to go through YMCS.

💻 APIs — 🥇 YMCS

There’s really nothing on the Roadmap for Microsoft Teams planned for APIs for configuration profiles in either Teams Powershell Module or Graph.

Microsoft Graph (beta) has some limited support for devices, but it still lacks the ability to create and set configuration profiles.

One can reverse engineer the APIs the TAC pages use. In fact, Alexander Holmeset’s blog does a fantastic job of exposing the API at: admin.devicemgmt.teams.microsoft.com/api/v2/configProfiles

This endpoint is however not officially documented nor publically supported by Microsoft as it is currently only in service to Microsoft's own TAC portal.

Yealink on the other hand does provide a fully supported and documented API to YMCS allowing you to programatically push configurations to devices. https://support.yealink.com/en/portal/docDetail?documentCode=197bd329850c4eba

Wrap-up & Retrospective

Although Microsoft Teams is one of the leading UC and Collaboration tools today, their device management (especially around IP Phones) does seem to lack the administration/configuration you’d come to expect from a traditional PBX. At the same time, with most calls now happening more over video endpoints like MTRs or personal computers, is it really fair to compare it to a PBX? Who could really blame them for putting more effort towards Meeting Experiences with enhanced AI through Copilot?

I completely understand the focus (or rather lack of) on IP Phones. But at the time this article is written, many organizations still have a need for them. The challenges shared above apply no matter what brand of phone you may have (Yealink, Crestron, AudioCodes, Poly). 3rd-Party vendor portals today continue to bridge an important gap within the Teams Admin Center and will remain part of an IT or UC administrator’s toolbelt.