Polycom Trio (or any 3PIP device) cannot join Microsoft Teams meetings
If you’ve stumbled upon this post, you’ve probably run into a problem joining a Microsoft Teams meeting using a 3PIP phone such as a Polycom Trio, Polycom VVX, AudioCodes or Yealink.
As explained in this excellent and thorough post by Jeff Schertz, Microsoft have implemented a SIP to Teams audio gateway to enable 3PIP phones to join Microsoft Teams meetings until July 31, 2023. The idea being there is nothing to configure from an admin point of view; it should just work.
As Jeff alludes to, there is a dependence on Skype for Business Online for this gateway mode to work. Although in a lot of what I’ve read there is no real explanation about what this dependency means. Is it enough to have a hybrid environment setup? Does the device need to be registered to Skype Online? Does the organiser need to be homed in Skype Online?
In this post on the Skype for Business blog titled “Certified Skype for Business Online Phones and what this means for Microsoft Teams” it states the following regarding Skype for Business Server:
Q: Will Skype for Business Server connected 3PIP phones get affected?
A: There will be no change to 3PIP phones connected to Skype for Business Server. They will be able to join Microsoft Teams scheduled meeting with the experience detailed above.
Also, in this post titled Skype for Business Certified IP Phones with Microsoft Teams, “One-click Join for Pre-Scheduled Teams Meeting” is listed as a core functionality for 3PIP devices.
Great, so it should work? Unfortunately, not always.
It turns out there is a dependency on Skype for Business Online, and that dependency lies with the organiser of the Microsoft Teams meeting.
The meeting organiser must be homed in Skype for Business Online for the 3PIP device to be able to connect. This is fine for anyone who is in TeamsOnly mode as it’s impossible to be homed in Skype on-prem when you’re moved to TeamsOnly mode. However, for anyone in Islands mode or any of the SfB* interop modes, it’s entirely possible you could still be homed in Skype on-prem. What’s worse, the organiser probably won’t even know where they’re homed.
So, what happens when you try to join a Teams meeting from a 3PIP device with a Skype on-prem homed organiser? This is what I see in my SQL reporting when looking for the INVITE:
Response code: 413Diagnostic header: 4008; reason=”Input data too large — One of the paramaters to the sproc exceeds limit”; source=”SkypeFE.domain.com”To user URI: sip:email@example.com;gruu;opaque=app:conf:focus:id:teams
So, why does this happen?
Well, when your 3PIP phone (or Trio, in my case) joins a Microsoft Teams meeting it doesn’t use the Join Microsoft Teams Meeting link you see in the calendar invite. If you save the invite as an .MSG file and open it with Notepad you will see a SIP URI that resembles a Skype meeting invite link which matches the user URI in the above error.
It would appear the key part of this SIP URI is focus:id:teams:2:0!19 which is used to hand the session over to the SIP audio to Teams gateway.
When the organiser is homed in Skype Online, this SIP URI reaches Skype Online and is passed via the SIP audio gateway to Teams. When the organiser is homed on-prem, this SIP URI hits the Front End server and bombs out with the error above. The Skype server isn’t able to decipher the SIP URI.
At this stage, it doesn’t matter where the 3PIP device is registered to for Skype as the meeting join will always hit the on-prem Skype environment — and fail.
Would it be too hard for Microsoft to write this into the Skype for Business Server product via a CU to pass it over the hybrid connection to Skype for Business Online?!?!
The second problem here is how the hell the recipient of the meeting invite is meant to know if the 3PIP device is going to successfully join the Teams meeting? It’s like a game of meeting join roulette.
Imagine a scenario of a company that has never had any Skype on-prem infrastructure, or a company which has spent a considerable amount of time and effort to move to Skype Online. They receive a Teams meeting invite from a client, supplier or partner. How is the recipient going to know where the organiser’s Skype profile is homed? They won’t, and this is my main problem with this whole thing. If the dependency was on the 3PIP device or the recipient organisation, I could kind of understand. It’s then within my control to make sure my devices work with Microsoft Teams meetings. Having it this was around is crap for everyone; both IT and the end user.
Solutions / Workarounds
So, what can you do to fix this. These are the current options I’ve come up with (spoiler: none of them are particular pretty):
Move your users to Skype for Business Online
So, this is only really an option if your users are the ones organising the Teams meetings. A few things to consider before a move to Skype Online though:
- The service is closing in July 2021, so you’re gonna need to know you’ll be on Teams by this point.
- You need to move PA/Managers together. If you split them, delegation won’t work anymore.
- If you have loads of response groups, you’re going to need to migrate these to Auto Attendants and Call Queues.
- Licensing. If you’re only E3, you’re gonna need to think about dial-in audio conferencing.
This isn’t a small piece of work and the decision shouldn’t be taken lightly.
Upgrade (or replace) your 3PIP devices to the native Teams client
In my case, I have an option to upgrade all my Trio phones to the native Teams client. This is covered under Jeff Schertz’s ‘Native mode’ section. Things to consider:
- Licensing. If you’re currently on-prem you will likely need to license every room. This will be costly.
- You might need some help from your Intune team to get this setup, especially if you use conditional access. Existing rules might get in the way here.
- The native Android Teams client cannot join Skype meetings. If you still have a lot of these being organised, each of these devices is going to need to dial-in to Skype meetings via PSTN. This will cost you money. First off, the device requires Enterprise Voice in order to dial-out, and secondly, the organiser needs to be enabled for audio conferencing (potentially another license cost). If there are no dial-in options for the meeting, the device isn’t joining.
Use a 3rd party CVI service to allow your devices to join
The final option is to use one of the three services from the official Cloud Video Interop partners; Poly, Pexip and BlueJeans. Again, this is only an option if you control the organisers. The ability to join a Teams meeting using CVI is only an option when it is configured on the organiser of the Teams meeting. This isn’t going to fix the join experience for meeting from third-parties without CVI details in the invite.