In this post I like to highlight a long awaited calling feature for Microsoft Teams Telphony. As of now, you can make and receive several PSTN calls in Microsoft Teams but not merge them.
Let’s draft the following call scenario: If you are on a PSTN call with person A and person B is calling you, too. Given the situation that you now want to discuss a related topic all together, ad hoc, you might like to bring together the person A, person B and yourself in the held and ongoing call. Today, you cannot just merge the calls, you would need to start a meeting to bring them together. This is unhandy in some situations.
Microsoft added an new item to its M365 roadmap and announced Call Merge which enables end users to
In this post I describe how you can enable, configure or disable direct end user communication by Microsoft 365. Microsoft 365 provides a bit hidden service supporting user adoption and training. It’s called “Microsoft communication to users” and can be found in the Microsoft 365 admin center. By default it’s on but not sending out mails because it is not defined by default what kind of training mails should be send out to users.
In the following screenshots I’ll show you where you can enable, configure or disable the service.
First you’ll need to go to https://admin.microsoft.com and open the settings area in the left-hand navigation pane, as depicted below. There you can navigate to
Microsoft communication to users
At this page you can decide how to proceed, to leave it enabled and configure it (7) or disable it by ticking off the box (6).
In case you want to enable it you can configure what’s relevant for your users.
You can choose several training topics:
Microsoft Office 365
Microsoft Office apps
New Office 365 training
After you’ve selected what topics are of interest you’ll get asked if you want to get a preview mail for approval before mails will be send to users. To approve end user mails each time with this approval mail process you need to tick the checkbox below the audience type.
Further, you can select who should receive the communication. At this stage you can select certain users or a group.
What if there are certain users which might not want to receive this communication?
Users can unsubscribe if they don’t want to receive the contents.
Conclusion, opinion and summary
The idea behind this is good. However, often companies create and provide their own customized content or user trainings which allows users to easily find what’s provided for them. At least that’s my experience. More and more companies establish a change management practice and have internal/external staff which take care of user training and adoption. Some organizations, they have already internal platforms for training purposes, not only for Microsoft 365. That’s why they tend to provide contents on an existing learning platforms and way instead of pushing out standardized mails directly from the vendor. The latter could also conflict with org wide settings, let’s say, something is not turned on in an org’s tenant and users get training content regarding this, it might cause irritations. Therefore, it’s relevant that you elaborate if you can use “Microsoft communication for users” or if it might collide with your existing learning concepts. In case there is no learning/adoption/training concept, you could consider “Microsoft communication for users” as an option to educate your users regarding Microsoft 365 related topics.
In this post I describe how you can fix a call loop and cause code issue with busy on busy enabled in Microsoft Teams Direct Routing in conjunction with a Audiocodes Mediant Session Border Controller. In one of my recent Teams Direct Routing deployments I came across an issue as soon as I enabled Busy on Busy in the Microsoft Teams Admin Center, as described in one of my previous blog posts, here.
Microsoft Teams Direct Routing
Audiocodes Mediant VE Session Border Controller (SBC) V 7.20A.256.721
PSTN SIP Trunk Provider
Microsoft Teams Busy on busy (BoB) enabled for the user/s
Enabling busy on busy on Teams caused call loops, many missed calles shown in the call history in the Teams client.
Usual calls incoming, outgoing, call forwarding etc. worked fine but after assignment of the policy including the enabled busy on busy the caller caused a “call loop” and many missed calls in the call history while the callee was still on a call with someone else.
Actually the above SIP flow looks ok but why on earth is the second caller’s number showing up that often? That’s the loop we get and the many missed calls as long as the called person is still busy on another call.
Usually, 486 Busy Here should be ok towards the PSTN SIP Trunk provider because this says “busy”. However, it did not really say “busy” or provide the “busy” tone to the second caller.
After some research I came across an helpful blog post from Luca Vitali describing a similar issue with the difference that he’s seeing this in a TDR deployment with a TDM PSTN trunk and a different cause code sent by Microsoft 365 Phone System.
So, I checked the SIP reason header in more detail for the “486 Busy Here”. Viewing the SIP message logs by using the SysLog Viewer I found REASON: Q.850;cause=34;text=”171015b7-8b51-4fca-b9c0-d5f052823334;User is busy and currently active on another call.” There I noticed “cause=34” which means “no circuit available”. Is this not ok? That could be the possible issue because Microsoft 365 Phone System sends the above in a BoB scenario and probably the PSTN SIP Trunk provider looks not only on the “486 Busy Here” but also in the details of the Reason including the Q.850 cause codes which does not include the right code for “busy”.
So, just set up a message manipulation rule on the Audiocodes SBC to change the cause in the SIP reason line.
Example of the message manipulation rule to change the Header Reason Cause Code:
This message manipulation rule is based on the message manipulation set id assigned to the IP Group for Teams as an inbound message manipulation.
Please note that the above is just provided as-is and might require adjustments for your deployment. Also, the above manipulation of the cause code might be adjusted if Microsoft Phone System was changed and it sends out another cause code in the Reason Header. I thought of using “…!= ’17′” to always change the cause code in the Reason Header but that’s no good idea because it can cause other issues.
After the message manipulation was implemented I successfully re-tried.
And also the SBC SIP flow is now fine, no more loops due to BoB and the second caller gets his regularly busy tone.
It’s also an option to remove the reason header instead of changing the Header.Reason.Reason.Cause.
Safe documents are a Microsoft 365 Advanced Threat Protection (ATP) feature. It protects your users from opening malicious documents which might harm your users data, privacy or even your complete IT infrastructure depending on what malicious document content is opened. ATP checks before opening it and avoids a user to open a document or leave the protected view in case ATP has recognized anything potentially malicious.
Why safe documents?
It adds another valuable layer of security for your users and infrastructure which kicks in even if someone opens a document which was not caught or categorized as malicious before by other security mechanisms. It might be the last barrier and defense if someone (accidentally) opens a document in your company to avoid a security incident with corresponding consequences for your company.
What’s required to use this capability in Microsoft 365?
Safe documents are an advanced security feature which requires the following:
Microsoft 365 E5 or Microsoft 365 E5 Security Microsoft emphasizes that it is not in Office 365 ATP plans
Organization Management or Security Administrator role in M365 (for configuration)
Office Version 2004 (12730.x) or later
How to configure it?
If the requirement are met you can configure and test it. By default it is turned off.
Please note configuring this will enable this for your complete Microsoft 365 tenant and therefore for your complete organization.
Enabling it via Admin Center
Maybe DON’T tick the checkbox “Allow people to click through Protected View even if Safe Documents identifies the file as malicious”.
That’s it now it’s live.
Enabling it via Shell
Alternatively, you can also enable this using Exchange Online PowerShell. Example:
Install-Module -Name ExchangeOnlineManagement
#Check Module availablity on system
Update-Module -Name ExchangeOnlineManagement
#Connect to EXO with MFA enabled
Connect-ExchangeOnline -UserPrincipalName <UPN> -ShowProgress $true
#Enabling safe documents but prevents users from leaving protected view
Set-AtpPolicyForO365 -EnableSafeDocs $true -AllowSafeDocsOpen $false
Get-AtpPolicyForO365 | Format-List *SafeDocs*
#Disconnect from EXO
Uninstall-Module -Name ExchangeOnlineManagement
Validating it with Shell
Due to the fact that I’ve configured this in the Admin Center I’m just checking if the settings is set as expected.
And there we go, it’s set.
Conclusion, opinion and summary
It’s very easy to configure however the licensing and client requirements are quite high. In case you met the licensing requirements you can enable it (with previous planning and testing).
Also note, you should check what your antivirus (av) client might do. In case you running a third-party av client. I did not test this having a third-party av client plus this enabled. I’d assume there should be no conflicts but there can be conflicts. So, I would not directly enable this in production without previously testing this maybe in a test tenant and a test client to ensure it works as expected before going live with safe documents.
In this post I describe how you can backup your Audiocodes Mediant VE on Microsoft Azure. Let’s start with some basics before configuring your SBC backup on Azure.
First of all, if you deploy your Audiocodes Session Border Controller (SBC) for Teams Direct Routing or any other SBC I’d recommend to save the configuration. For instance, on Audiocodes Mediant SBCs you can easily save the configuration file (config.ini) and/or packages.
Take a (“on-system”) snapshot
Another option is to directly save a snapshot on the Audiocodes SBC which enables you to quickly revert to this “restore point”.
Enable Azure Backup for virtual SBC
Hereinafter, I’ll show an example on how you can enable and configure your Audiocodes Mediant VE getting backed up on Azure.
Here you can configure retention, how long which type of backup should be kept.
After the validation is ok, your done. You could trigger an ad hoc backup now, to check if it works.
If configured you should also restore the system once, to ensure that you know that it works and how to restore a VM.
Conclusion, opinion and summary
To backup your virtual SBC on Azure is a good thing in my opinion. Especially if you maybe want to revert the SBC after a firmware upgrade to an earlier release or just quickly bring back another configuration if you’ve missed to download the config.ini or config package before you made this one big change on the system.
In this post I describe the CQD for Microsoft Teams and provide an high-level overview on its capabilities.
What’s the CQD? The call quality dashboard, short CQD, is a rich dashboard and reporting platform to check and ensure call quality metrics. Furthermore, it helps to analyze and to troubleshoot call quality if you drill down in reports and to figure out where you might have issues. Or you can just see what’s going on in your Microsoft 365 Phone System with Microsoft Teams.
In case you need to dig in deep in the depths of the reports you might also want to upload some network details regarding your physical location/s or endpoints. This can help you as well as Microsoft Support to troubleshoot issues, if required. For example, you can upload a CSV including:
CQD Tenant Data Information (CSV) example for buildings
So, depending on your uploaded data you can view the reports either without or with the enriched data input.
Conclusion, opinion and summary
The CQD is a helpful means to support analyzing and troubleshooting call quality-related issues. They reporting data can help to find out what’s not working well and maybe even give you the why to mitigate the issue. E.g. bad connectivity, bad device or else. Additional, depending on your organization’s size and requirements you could also get the data to PowerBI for more customized views and reporting, if needed. The CQD is very powerful and supportive to resolve call quality issue. In case you are utilizing Microsoft Teams especially calling capabilities, I think, it is a very good platform which can support your call quality troubleshooting.
Microsoft soon enables you to schedule a Teams (or Skype for Business Online) Meeting by using Outlook on the web, Outlook for iOS or Outlook for Android. As of now, May 2020, it looks like the feature on Outlook on the web is planned for the second quarter (Q2) 2020 and on mobiles (iOS/Android) for June 2020.
At the bottom of this post you can find the links to the user guide on how to create a Teams meeting in Outlook on the web/for iOS/for Android, to start right away scheduling Team meetings, as soon as it becomes available. So, you should, as usual, keep your mobile device and apps up-to-date.
This post is about the Contact Center Integration in Microsoft Teams. If you deploy Microsoft Teams calling capabilities to enable your workforce to use Microsoft Teams you might also be interested in the Contact Center integration. In the past I wrote an article about Microsoft Teams Call Queues and Auto Attendants for Direct Routing which describes Teams calling capabilities in regards of automatic call distribution (ACD) and/or interactive voice response (IVRs). Depending on your needs this was and is maybe not yet sufficient for your agents because you have many agents answering loads of incoming calls, transfer calls to maybe other departments/agents and respond to these incoming requests, complaints, remote advisories, incidents or what have you. Maybe 24/7…
So, there was a missing piece to bringt Microsoft Teams and more advanced Contact Center solutions together. Until lately. APIs were enhanced and improved which enabled Contact Center solution and service providers to build and use the available integrations based on
Direct Routing Connectivity,
Microsoft Graph Cloud Communication APIs,
Teams platform and extensibility and/or
By this Microsoft enables for three integration “depths”:
Connect | based on Direct Routing
Connect and Extend | mixture of Direct Routing + Graph APIs + Teams apps platform
Extend and Power |embedding Teams SDKs into Contact Center App/Solution/Service for native Teams interactions (which works with Direct Routing as well as calling plans)
Now that you want to start to integrate your existing Contact Center solution in Microsoft Teams, note that this works only for certified Contact Center solutions and services, which are listed in the Connected Contact Center for Microsoft Teams Certification Program. Today, there are already very well-known providers offering Microsoft Teams integration (see additional resources).
Conclusion, opinion and summary
This is another step forward to bring in more voice and calling capabilities into Microsoft Teams as it can become the primary client app for Contact Center agents as well. I assume that more is about to come and enable companies to leverage more and more of Microsoft Teams especially enterprises with large contact centers which might still be on Skype for Business Server with Enterprise Voice for these workloads. In the past this was mostly due to the SFB UCMA integration which was often used in these voice deployments and in Teams this integration option was missing. Now, enterprise still running SFB Server and having dependencies in regards of third-party Contact Center solutions based on UCMA might probably soon get rid of SFB Server onprem, migrate (the until now left behind Contact Center agents) to Microsoft Teams and decommission SFB Server infrastructure.