When you’re using Microsoft Teams Direct Routing as your primary calling solution, chances are that sometimes you also need to permanently forward calls to one of your numbers to another external phone number.
Forwarding by a Licensed Teams User
Setting up a forwarding of numbers can be achieved in multiple ways. The most obvious one to just create and license a Teams user and setup a permanent call forwarding for that user in the Teams Client.

The user needs a Business Basic + Teams Phone Standard License. You cannot use a Common Area Phone.
Since there is no voice app like an auto attendant or call queue involved in this scenario, all calls to the direct number of this particular user will be forwarded right away. This also means that the caller will hear the ring back tone, until the external participant (forwaring target) answers the call.
Advantages:
- Direct forwarding, call does not get picked up or intercepted by Teams
- Good for scenarios where the forwarding target often changes. This allows users to change the number without needing a Teams Administrator to make a change
Disadvantages:
- License costs
- Configuration can only be reviewed or changed by logging in to the user
- Can’t use Service or Toll-Free numbers
Forwarding by a Resource Account
It’s also possible to transfer calls to external PSTN numbers by using resource accounts assigned to auto attendants or call queues. Before you can assign a number to a resource account, you need to assign a free Teams Phone Standard — Virtual User License to the resource account.
Once the license is assigned, we need to assign a phone number to the resource account:
Set-CsPhoneNumberAssignment -Identity user@example.,com -PhoneNumber +1231231234 -PhoneNumberType DirectRouting
Next we also need to assign it a Voice Routing Policy:
Grant-CsOnlineVoiceRoutingPolicy -Identity user@email.com -PolicyName "FirstTrunk"
For my test, I setup a auto attendant without business hours so it will always perform the same action: forward the call to an external number. This works but the autoattendant picks up the call causing a pause in the phone call. This would not work if the forward was for a FAX number.
Since it’s also possible to forward calls from a call queue to an external number, we can leverage this to create a similar experience as to when the call is permanently forwarded by a Teams user.
A call queue has two options to control actions or forwardings. Overflow (max. number of simultaneous calls) or timeout.
If we set the timeout to zero (0 minutes, 0 seconds) the queue still answers the call, before it’s forwarded. Even if there is no greeting configured.

A good example to see that the queue picked up the call is that the counter starts on any phone. Here I’m using Skype to call the call queue and you can see that the call has been established for 5 seconds, even though the configured forwarding target has not answered the call yet. While the call rings the forwarding target, Teams will generate a ring back tone inside the already established call.
If we set the overflow threshold of the queue to zero on the other hand, TAC shows a warning message that the queue won’t play the greeting when the overflow threshold is set to 0.

Advantages:
- No License costs
- Can use Service or Toll-Free numbers
- FAX calls will work if using a call queue
Disadvantages:
- Only Teams admins can change the forwarding target
Summary
Even though it might not be an obvious solution, using a call queue to permanently forward calls is still a great way to have more control over all your DIDs right inside Teams itself without adding any license costs.













