Monthly Archives: March 2020

Move Teams Media Between Devices

This is a crummy, but sometime necessary workaround. As with all things Teams, new features are constantly hitting, new capabilities and new tactics so this may be unnecessary in a month, year, or perhaps even today.

The scenario is: You’re using Microsoft Teams on a phone call or other media chat and you need to move that media from your desktop client to your mobile client. However, there’s no obvious way to accomplish this. Many of my clients just assume this standard feature exists because it exists on other VoIP platforms. When this scenario needs to be accomplished, there are two options I’ve been able to find.

Option 1: Transfer to yourself (voice only)

Unfortunately, you can’t transfer to your own user account so this isn’t as fully featured as it seems, you can however transfer to your own phone number if you have the Phone System license. In the transfer box, type your own Microsoft Teams phone number and let it transfer. You should now see the incoming call on all of your logged in Microsoft Teams devices, effectively allowing the movement of media from one device to any other device logged into Teams.

Option 2: Call Park (includes video and more, but with a catch)

This one requires some Admin setup and the phone system license still, but makes life a little easier if you’re going from web to mobile to desktop. The big problem is that you can’t park or retrieve it from a Skype 3PIP desk phone at the moment. Each side may also need to re-initiate video or content sharing after the call resumes from its hold state.

To enable call park and retrieve, follow the directions as seen in this Microsoft Docs Article:

EDIT: Below, based on what I’m hearing from Teams MVP Randy Chapman of Twitter fame and call parking does actually work on Teams firmware desk phones. The document I referenced for the table below is likely in need of an update. I did not bring my Teams firmware phones home during the Coronavirus event to allow myself to test.

CapabilityTeams DesktopMac AppTeams Web Teams mobile Teams phoneSkype phone
Park a callYesYesYesYesYesNo
Retrieve a parked callYesYesYesYesYesNo
Unretrieved call ring backYesYesYesYes?No

To park a call or other media within a mobile device, click the ellipsis () during the call and choose “Park Call”. You will be given the code to retrieve or unpark the call on another device. To retrieve a parked call parked from a different device, attempt to make a new call and look for the phone icon with a P in the upper right as seen below.

From a desktop, parking is similar. Click the ellipsis () during the call and choose “Park Call”. You will be given the code to retrieve or un-park the call on another device.

To retrieve the call, navigate to your speed dial and in the upper right, find “Parked Calls”. If you look closely at the picture below, you can also see the number of the currently parked call on hold in the upper left.

Hopefully this was somewhat helpful. If you have a better (or just another) method of moving the media, please let me know, I’m curious to see if there’s a smoother approach.

Another edit, Randy beat me to the punch on Option 2 a bit, so if you want more info on this approach, visit his blog by clicking here.

Free Tool: Microsoft Teams Information Barrier Manager GUI

I was working on an information barrier setup for Microsoft Teams, and was getting a little tired of going back and forth with my notes to remember command and filter structure.  So as I do, I wrote a GUI tool to handle a lot of it for me.  This is the very first iteration of it, and I tried to get enough bug checking in there to get you some decent pop-ups, but the code is open source (it’s PowerShell) and it’s on GitHub so edit it as much as you want to suit your needs and if you add something cool, send it my way or submit a pull request on GitHub if you’re into that kind of thing.

If you don’t know what I’m talking about when say “information barrier”, they’re also known as ethical walls.  There will be situations where one department shouldn’t be able to talk to another department for legal reasons.  A more common scenario is that a high-up executive wants access to instant messaging, but only wants a specific group of users to be able to disrupt him.  In the Skype world, this required MSPL scripting and was tricky and could be dangerous if you messed it up.  In the Teams world, it’s built in if you have E5 or other appropriate licensing.  

The hardest part about information barriers in Teams is making sure you meet the prerequisites.  This includes getting the information you want to filter on, such as department name, accurate for each user.  This also means that your policies will need to be symmetrical (ex: if non-execs can’t IM the CEO, then we need a matching policy that blocks the CEO from IMing those non-execs as well).  I considered building a prerequisite checker in, but haven’t gone that far just yet.  Some of this would require pulling different PowerShell modules to check licensing, contact info, and Teams settings which can cause additional authentication prompts.  For now I have a simple help button that gives common reason why the application of your policy may not be working the way you expect.

Now, on to the tool.  It’s available at is pure PowerShell, so all you need to run it is a Windows box, nothing to install.

You’ll need the right role to assigned to modify this stuff (Global Admin, Compliance Admin, or the new IB Compliance Admin role).  It’s also helpful to read Microsoft’s overview of the solution before you start:

Finally, the screenshot 🙂


Feel free to hack at it and let me know if you find bugs.