Design a site like this with WordPress.com
Get started

Teams Meeting PSTN Dial-out: Who is paying?

Meetings have always been one of the core features in Microsoft Teams. I’m sure many of us have used the feature where you are in a Teams meeting and you dial out to PSTN to “drag someone in”. But, where do those calls go out from and who is paying them? It also gets interesting once you throw Direct Routing into the mix.

There are a few configurations where you’d be able to dial out to PSTN from Teams meetings:

  1. Audio Conferencing License

The license needs to be assigned to the meeting organiser.

Each Audio Conferencing (pay monthly) subscription provides 60 minutes per user per month that can be used to dial out to non-premium numbers in ANY of the Zone A countries.

This includes:

  • Audio Conferencing license as add-ons (e.g. to E1, E3, etc.)
  • Audio Conferencing license included as part of another license SKU (e.g. E5, Teams Room Standard and Teams Room Premium, etc.)

Calculation

Tenant dial-out minute pool size is based on purchased licenses (not applied licenses). For example, if you have bought 100 Audio Conferencing add-on licenses but only 10 of them are actually assigned to users, you still get 100 x 60 = 6000 mins in the dial-out pool.

Monitoring

You can monitor and track the usage of this pool in the Teams Admin Center (TAC) under Analytics & reports, and then Usage reports. Select the PSTN minute and SMS (preview) pools and hit the Run report button.

Call Routing

In terms of call routing in this case, the outbound calls are routed out to PSTN via Microsoft and the Audio Conferencing dial-in number of the organiser (the number that’s on the meeting invite) is presented as the CLI to the callee.

  1. Direct Routing

Can Direct Routing be utilised for Teams meeting PSTN dial-out? Yes!

In order to utilise Direct Routing, you’d first need to remove the Audio Conferencing license from the meeting organiser’s account. Although, as we mentioned above, the Audio Conferencing license comes with dial-out mins, the primary purpose of this license is to popluate a phone number in your Teams meeting invites and allow people to dial-in over PSTN. Therefore, by removing this license the meeting invites from the organiser will no longer contain a dial-in phone number. BUT, the PSTN dial-out from Teams meetings will now follow the organiser’s Direct Routing configuration as per the assigned Online Voice Routing Policy. The organiser’s DDI is presented as CLI to the callee.

[Edit: Thanks to David Chomca for pointing this out]

Adding another slightly more confusing scenario here:

If both the meeting organiser and the attendee (from the same org) are configured for Direct Routing and don’t have Audio Conferencing license, when the attendee initiates the dial-out from the meeting the call presents the attendee’s DDI as CLI but follows the meeting organiser’s Online Voice Routing Policy for call routing. Yep, confusing I know… but it was confirmed in testing. Thanks Microsoft! 🙂

What happens when you use up all the minutes in the included pool?

First of all, when you are running very low, the admin will receive a warning email from Microsoft. (Although the sender is still “Skype for Business”… Microsoft should really change that now.)

And another similar email will come when the dial-out minute pool is completely used up.

The dial-out overage is covered by Communications Credit. You’d need to purchase it as a free license SKU, top it up with money, and assign it to the users.

The credit is valid for a year (so don’t put too much in there in one go). You can set up auto recharge when it runs low.

What if you don’t have, or don’t want to have, Communications Credit to cover the overage? What would happen then?

When your dial-out minute pool runs out, any in-flight dial-out calls will be disconnected. Other attendees (joined from Teams or dial-in) would remain in the meetings unaffected. If you attempt to dial out from the meeting again, the call will fail and you will see an error message.

There is a cheeky little workaround at this point, if you have Direct Routing. So your organisation doesn’t have Communications Credit set up, and your inclusive dial-out minute pool is completely dry. But, there is a high profile meeting going on and the boss needs to drag someone in NOW. The quick-fix is: remove the Audio Conferencing license from the organiser’s account. Give it a couple of minutes, and people will be able to dial out from that meeting again. The call will go out via the organiser’s Direct Routing route.

Calling Restriction Policies

Quoting Ken Miles in the movie Le Mans 66 (or “Ford v Ferrari” for folks in the US of A), “there is no point of having a big engine if we can’t stop“. Having the ability to dial out from Teams meetings is great but we need to be able to apply some control when required.

Like everything else, this is policy controlled and can be applied in the TAC or using PowerShell.

Your options are:

More details here from Microsoft: Outbound call restrictions – Audio Conferencing & PSTN calls – Microsoft Teams | Microsoft Docs

I also have another blog post on the call restriction subject: https://sho.tech.blog/2021/09/02/restricting-barring-international-calling-in-teams/

Thank you for reading. I hope you found that useful.

Advertisement

Join the Conversation

2 Comments

  1. “here is a cheeky little workaround at this point, if you have Direct Routing. So your organisation doesn’t have Communications Credit set up, and your inclusive dial-out minute pool is completely dry.”
    What about using on-net audio conferencing for that purpose rather than removing license?
    Set-CsOnlineAudioConferencingRoutingPolicy

    Like

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: