Skype for Business Online Cloud PBX Voicemail transcript Summary

Well this announcement came out of the blue for me but its awesome its here! its a new feature to Azure Voicemail for SfB Online Cloud PBX users but has been available with Exchange UM for a while.

I don’t often use voicemail a lot but anyway to quickly view what a voicemail is about is great as i can hopefully see how urgent it is, also phone numbers left in VMs are now in text in your inbox and also for users with hearing impairments its great to have voicemail as text as well.

Cloud PBX voicemail doesn’t use Exchange UM as it utilises Azure Voicemail platform. There are currently it seems seven language available for transcribing which I’m sure will grow and grow.

Language recognition is based on users language setting in voicemail and is changeable on user and tenant level. For users level Sign in to the Office 365 portal. In the portal, go to Settings and change the language to the language of your choice


This feature is enabled by default now so you don’t have to do anything ! unless as an administrator you want to disable that is.

As admin Turn off at tenant level

Set-CsOnlineVoicemailPolicy -EnableTranscription $false

or for a user Grant-CsOnlineVoicemailPolicy -PolicyName TranscriptionDisabled -Identity


So heres a test drive of the new feature.

I called my Cloud PBX PSTN number from my mobile and call was forwarded to voicemail and i left a message as Dave.

In the voicemail i said “ Hi Martin, its Dave just wondering if you could give me a call back please as i don’t to talk to you about something, thank you, bye bye.

So it didn’t transcribe it 100% but overall it transcribed the message well but missed out the person name.

Also it mentions below “Transcription service is in preview state”


If you follow the feedback you can leave feedback and comments on the transcription


I left some  more messages and it wasn’t catching peoples names or numbers, suggested a few times i said I’m off today which i didn’t say and added a time for a meeting which i didn’t say so its work in progress.

Tried to leave phone number and this message didn’t transcribe at all.


No name mentioned and it suggested a time for the meeting which i didn’t say.


This one had a phone number but missed the first zero and added extra numbers.



I think the transcription will without a doubt get better as it learns more and it does mention transcription in preview and will improve.

I think its great to have and Exchange UM transcription wasn’t 100%. I do wonder how it will cope with accents though.

Also i think its a good idea to let your users know this feature is enabled now.


Change VM Language for whole tenant

Cloud Connector Edition Update 1.4.2 Key Points and useful info

Been looking around what information is available about the pending 1.4.2 update for Cloud Connector Edition (CCE).

This will be the first automatic update release so if your on version 1.4.1 or below i recommend just looking over and checking your setup. Also the update will follow the update schedule that has been defined on the Hybrid PSTN site. Its worth checking what time is set now before the update is released.

The noted expected release date is 20/3/2017 so not long to go but this date is pending final testing and confirmation it mentions.

Below are some great links from TechNet Blogs i recommend looking over before the 20/03/2017 so you can check over your existing deployment, understand the automatic update process and also automatic recovery process. Its always good to know the process just in case.

Brief Update Summary

Please prepare for the auto update and spend some time checking you have everything in place and your ready.

Auto Update will follow the update time windows that specified for the HybridPSTNsite, if an update is found at this time the update will start. The CCE Appliance will go into Maintenance mode (only one per site can enter maintenance mode at a time) the update tasks will run and following update the appliance will be taken out of maintenance mode and repeated for any other appliances in the site. You can monitor the update process.

For updates Cloud Connector version is downloaded and management service stopped, Cloud Connector updates which removes old version and install new version, new Virtual machines are built side by side from existing VHDX file but note if the VHDX is older than 90 days the intall instance script will log a warning. Once all updates are complete and services runing the switch to the new version will takes places by changing virtual network connections to new vms, shut down n-1 version and remove n-2 version and appliance is take out of maintenance mode. Windows updates is then performed. As the older version is kept you can revert back to it if required.

There are also tasks to look at following the update as well so make sure to check your update version and tasks after update.

Prepare for Cloud Connector Edition Release 1.4.2

Also some key points i found on prepare

  • Expected release date for this is 3/20/2017 pending final testing. Look for release announcement here
  • If you are running version 1.3.8, refer to the manual update instructions Upgrade a single site to a new version in the Cloud Connector Edition (CCE) configuration guide.
  • make sure to export a new sample Cloud Connector configuration file after 1.4.2 is installed for reference, and update your existing configuration file with two new parameters defined in the Common Section: HardwareType and WSUS Server.
  • This update is important, as it is the first to automatically update all existing installed Skype for Business Cloud Connector 1.4.1 appliances, based on the update schedule that administrators have configured for their Cloud Connector Hybrid PSTN Sites.
  • Confirm Group Policy is Configured
  • Use of Forward PAI has been deprecated in 1.4.2 as it’s no longer required to resolve missing caller ID for outbound calls from Skype for Business Mobile clients which has been resolved with changes in outbound routing logic for Cloud Connector.
  • A bug in prior builds caused Cloud Connector account passwords to expire. If the passwords have expired, then the update will fail
  • If your Cloud Connector Office 365 tenant administrator password has been changed, update the cached credential
  • Also, make sure to export a new sample Cloud Connector configuration file after 1.4.2 is installed for reference, and update your existing configuration file with two new parameters defined in the Common Section: HardwareType and WSUS Server.

Understanding Cloud Connector Edition Auto Update

Key Points i found on Auto Update

  • If you do not update the Cloud Connector to the latest release, you might end up in the situation when your Cloud Connector will not work properly
  • Microsoft supports only the latest version of Cloud Connector software. Also, to accommodate Update Window, we support the N-1 version for 60 days after releasing a new version.
  • Auto Update Requirements
    • Outbound internet access to install, manage, and update Cloud Connector on Host Appliance.
    • Outbound internet access on all Cloud Connector VM’s to download Windows updates, or, access to WSUS server as defined in Cloud Connector configuration file.
    • Skype for Business Online PowerShell Module installed on Host Appliance.
    • CCE Management Service is running on Host Appliance.
    • Group Policy to prevent forcefully unloading user registry at log off (required for 1.4.1).
    • Skype for Business Tenant Admin account.
  • Confirm or Modify the Update Schedule for Hybrid PSTN Site(s)
  • When auto updates are enabled, the Cloud Connector management service will check for updates during the update time window configured. If updates are found, then the update process will proceed with the update.
  • Monitor Update Process – The Cloud Connector management service will log events to the Windows Application log with a source of CCEManagementService and detailed information will be written to “C:\Program Files\Skype for Business Cloud Connector Edition\ManagementService\CceManagementService.log”. You can also see the status of the appliance by running Get-CsPSTNHybridAppliance in Remote PowerShell or by viewing in on premises PSTN tab in the Voice section of the Skype for Business Admin Center.
  • Bits Update Process – During this process, the running version remains in service, and an interim switch is used to connect to the new VM’s. Once the new version installation is complete and services are confirmed to be running, the old version is drained stopped and the network connections are switched to the new version.
  • New virtual machines are built from the existing VHDX file. If the VHDX is detected to be older than 90 days, the Install Instance script will log the following warning:
    SFBServer.vhdx was generated more than 90 days before. Use Convert-CcIsoToVhdx to generate it again and apply windows updates.

Note: It is recommended that a new VHDX be built periodically to reduce the amount of time to perform Windows updates for new and updated Cloud Connector machines. It’s not supported to update the VHDX with Windows update and re-run Sysprep as there are a limited number of times that Sysprep can run on a computer.

Understanding Cloud Connector Edition Auto Recovery

Key Points on Auto Recovery

  • Cloud Connector will try to automatically recover an appliance if the Cloud Connector management service detects a service is not running.
  • Detection: Process for detecting an appliance status runs every 60 seconds and status is updated in the online tenant and cached locally in “CCE Site Directory\Site_EdgeFQDN”.

Monitoring: The following services are actively monitored:

  • Mediation Server: RTCSRV and MEDSVC
  • Edge Server: RTCSRV

To manually recover the appliance, first review the Cloud Connector management service log for details on what prevented automatic recovery from being successful.

If the current version of the appliance cannot be recovered, run Switch-CcVersion to switch to the backup version. After the backup version is confirmed running, uninstall the non-working version with: Uninstall-CcAppliance -Version “# of non-working version”.

Note that when the backup version is running, there will be no High Availability support due to inconsistent running and Cloud Connector script versions. Update to the current version as soon as possible, either by modifying the auto update schedule, or manually. For manual update instructions see Upgrade a single site to a new version in the Cloud Connector Edition configuration guide.

Cmdlets to check versions

  • Installed Cloud Connector script version: Get-CcVersion
  • Appliance running version: Get-CcRunningVersion

Useful References

RSS Feed –

Upgrade to a new version of Cloud Connector

Modify the configuration of an existing Cloud Connector deployment

Skype Academy presents: Hybrid and Online Migration Summary

Recently some new videos were published to the Skype Academy training and one i think a lot of people will be interested in is Skype for Business Hybrid and SfB Online Migrations. A list of the new videos available is here

This video covers all aspects of Hybrid at a high level including

  • Lync / SfB Server Topology requirements
  • Identity Requirement
  • AAD Connect ADFS
  • High Level Network and Firewall Information
  • Managing and configuring Hybrid
  • Also some troubleshooting scenarios
  • Links to Skype operations Framework as well

Definitely worth a watch

Also definitely worth a read is Josh Blalocks Hybrid Handbook download here

Below is a summary of the Skype for Business Academy video here.


This is the January 2017 version of this training.

This content is subject to change as with all Cloud technology information and training.


There’s a lot to cover and the video is around 45mins long. It great this video doesn’t just cover Lync / SfB it also talks over identity AAD Connect and ADFS


Skype Operations Framework (SOF)

With Hybrid this fits into Cloud Migration as customer may be looking to migrate from on premises to online and also customers may require to keep and have users homed on premises and online due to functionality not being available online.


For Hybrid we are looking a Cloud Migration workflow of the SOF. Recommend you take out SOF and the great download and assets that are available here. To Quickly get started use the Quick Start on the home page.

Goal of Hybrid

Is to have a shared SIP namespace  Online and On premise. Where you can have users home on premises and online using the same SIP address space. This allows customer to move users between on premises and online and back from online to on premises and also provides a migration method from on premises to online which also migrates existing contacts, then allows the on premises environment to be decommissioned once all services and users have moved.

You could look at a hard cut over if you wanted to move to Online only but you would lose existing contacts and the experience is not as seamless. I would recommend hybrid if possible.

For example is available on premise and online.


Hybrid Benefits


  • Move users from On premise to Online and also you can move from online to on premises.
  • Allows user to leverage CLOUD only features and functionality such as Skype meeting broadcasts and Cloud PBX.
  • GET the best of both worlds ! Users on premise can leverage full enterprise voice functionality.

Topology Requirements for Hybrid


Full server deployment on premises and Administrator tools of the following:

  • Skype for Business Server 2015
  • Lync Server 2013
  • Lync Server 2010

Please note the latest Cumulative updates are always recommended.

Please note for Cloud PBX with on premises PSTN connectivity you require SfB Server 2015 or Lync Server 2013. Lync Server 2010 is not supported.

Lync Server 2013 – Support Cloud PBX

Lync Server 2010 – DOES NOT support Cloud PBX

Allowing for Mixed Topologies



You can have a mix of Skype for Business Server and Lync Server but note the requirements above.

Certain roles need to be Skype for Business 2015.

For more detailed information please refer to TechNet here

CLOUD PBX with On premises PSTN connectivity Hybrid requirements

Must be SfB Server or Lync Server 2013.

Please note for Cloud PBX you need to have the following server roles with the supported versions


Office 365 and Identity Requirements

Identity is Key and in alot of cases customers already have this deployed if they have Exchange Online for example. If new to Office 365 this is a key requirement.


Also consider Interop with Exchange and Networking Requirements


Skype for Business Edge Connectivity

HA and DR is key on premises as sign in is pointed to on premises servers

If you want Outlook web access integration you must have your mailbox homed Online.

Azure voicemail can also utilise on premises exchange if required.

Networking – Need to open ports on firewall.

Please check Office 365 IP and Ports here

Please check bandwidth requirements as well as traffic will go over the internet to SfB Online. Please check out Skype for Business bandwidth calculator here

MMS Training here

HA and DR Considerations

Hybrid is very very reliant still on the on premises Lync / SfB infrastructure and dont overlook the requirement. All SfB Public DNS records point on premises and are redirect to SfB Online. If clients cant get to the on premises infrastructure then they cant get to SfB online as well.

Please see examples below

The SfB client registration process client does DNS lookup for which resolves to the on premises reverse proxy server NOT SfB Online.


This returns back the internal web services url which redirect the client to SfB Online.


Http Analyse below.

The on premise SfB external web services does a redirect to SfB Online web services



Open all ports for an On premises edge and reverse proxy server deployment and also open port requirements for SfB Online.

On premises Edge Server requirements here

Server Firewall requirements – Server to SfB Online


Always check

SfB Clients to SfB Online  Firewall



Identity Requirements

High level overview only but gives a good overview of Identity requirements for Hybrid. Don’t overlook this requirement.


Identity Management


Authentication and Authorization and definitions above.

Identity Options – Three options for identity with Office 365 only two are suitable with Hybrid.

CLOUD ONLY is NOT an identity option for Hybrid.


  1. Cloud Identity (Not available with Hybrid)
  2. Synchronized Identity (Directory and Password Sync)
  3. Federated Identity (Directory and Federation)

View the differences in Synchronised and Federation including server counts and SSO. Also consider requirements on where authentication will take place.

Password Sync (Synchronized Identity)

AAD Connect only with Password Sync.



Two User IDS but one username and Password

Authentication happens in the CLOUD

Federated Identity

AAD Connect and ADFS and ADFS Web Proxy



True SSO

Higher Server Count

Authentication happens on premises !!! Again reliance on premises infrastructure.

Note password management and resets are on premises.

ADFS 3.0 deployment Options with federation identity

Can be single server but not recommended due to NO high availability.


Recommended to have ADFS server farm deployment for HA an example below.


AAD Connect – Azure Active Directory Connect

How do we sync out user object into Office 365 AAD Connect which was DirSync.



Required for Synchronized and Federated identities.

What does AAD Connect synchronise ?


Not every sync by default. You can use filtering and additional sync features

Common AD sync questions


Licencing of users is seperate

You can still create users in Office 365 but not recommended. Crate on premise and sync up to the Cloud.

How to Deploy Skype for Business Hybrid and Steps required

So we looked at the prereqs now lets see them all. The following prereqs must be in place before you can configure SfB Hybrid.


Please note ALL of the above items must be in place.

Configure AAD Connect


Various tool consolidated into a deployment assistant

AAD Connect – Express Settings


Start with Express and add other options if required.

SfB Enable Federation and Split Domain

Federation must be configured the same on premises and online. IF you use closed federation and have added allowed domain then you these must be added online as well.

he following requirements must be met to successfully configure a hybrid deployment:

  • Domain matching must be configured the same for your on-premises deployment and your Office 365 tenant. If partner discovery is enabled on the on-premises deployment, then open federation must be configured for your online tenant. If partner discovery is not enabled, then closed federation must be configured for your online tenant.

  • The Blocked domains list in the on-premises deployment must exactly match the Blocked domains list for your online tenant.

  • The Allowed domains list in the on-premises deployment must exactly match the Allowed domains list for your online tenant.

  • Federation must be enabled for the external communications for the online tenant, which is configured by using the Skype for Business Online Control Panel.

This is from


This can be done via Management Shell on premises and online



If you have Skype for Business Server you can use the Hybrid Configuration Wizard in SfB Control Panel to configure Hybrid for you via a GUI. This will also run some configuration checks to ensure all prereqs are met for Hybrid.


Please Note the SfB  Front End server do require Internet Access

The Hybrid Control Wizard will do a number of checks to ensure everything is configured before enabling Hybrid.


If it detects an item is not configured it will flag this


After addressing any flagged items run again and


Move Users

Now that the SfB Hybrid is configured its time to move users and we can move them both ways.

BUT before we move them please note

  • User contacts   The limit for contacts for Lync Online users is 250. Any contacts beyond that number will be removed from the user’s contact list when the account is moved to Lync Online.

  • Instant Messaging and Presence   User contact lists, groups, and access control lists (ACLs) are migrated with the user account.

  • Conferencing data, meeting content, and scheduled meetings   This content is not migrated with the user account. Users must reschedule meetings after their accounts are migrated to Lync Online.

Also don’t forget about SOF people !

Remember to refer back to the Skype operations framework


Refer back to the workshop and SOF to ensure you move the correct group of users together.

ALSO KEY to remember user adoption and training, dont skip this in all the excitement.

Before we can move the users we need to determine the migration URL which is a manual process.


Once Migrated URL is determined you can move users.

REMEMBER create users on premises then move Online ! Also key to remember is licence the user in office 365 first otherwise it will error.

What information gets migrated with the users?


Contacts will get migrated but note there’s a 250 contact limit in SfB Online so you need to make sure you don’t have more than 250 contacts otherwise only the first 250 will be migrated.

For Meeting if you mailbox is in Exchange Online you can utilise the new Meeting Migration Service to update existing scheduled meeting URLs.

If your mailbox is in Exchange on premises then there is a Meeting Migration Tool that you can download and install on each users computer that will run and search the user mailbox for scheduled meetings and update the URL and send updated meeting invites to meeting attendees with the new meeting details. MMS does all this as well but its an automated service if your mailbox is online only. Sorry on prem exchange people.

Also note users will now have to use SfB Online policies to your online.

Also note client supportability and On premises SfB / Lync policies are not carried over to online.

  • Client support    Some users may require a new client version when they are moved to Skype for Business Online. For Office Communications Server 2007 R2, users must be moved to a Skype for Business Server or Lync Server 2013 pool prior to migration to Skype for Business Online.

  • On-premises policies and configuration (non-user)   Online and on-premises policies require separate configuration. You cannot set global policies that apply to both


Moving users back to On premises

Perhaps there are features that are only available on premises that are not available in online.



What happens to AD user attributes ?

When enabling for SfB online and on premises.



On premises users need to be ware of online users


SfB Online user NOT enabled for SfB. No attributes set.




Moving Online user to on premises



Attributes populated for on premises details

Manage SFB

Next we look at management of users, moving from Control Panel and searching for users online.



In control panel you can search for online users only using the filter

Also you can use PowerShell


Online users you can modify some option not all.


Here you can move the user.


Front End Server needs internet access to move users


Error Example – You must licence user online for SfB

Move to on premise example




CQD – Call Quality Dashboard

Good tool for checking call quality please note there is an on premises CQD and CQD Online. Theses are separate dashboards.


More details on CQD here

CQD training here

Troubleshooting Scenarios


Cant sign into SfB Control Panel for Hybrid Configuration Wizard

Issue above if due to Front End Server not having Internet Access










Client Support

This isn’t referenced in the video but is important to note

The following clients are supported with Skype for Business Online in a hybrid deployment:

  • Skype for Business

  • Lync 2013

  • Lync 2010

  • Lync Windows Store app

  • Lync Web App

  • Lync Mobile

  • Lync for Mac 2011

  • Lync Room System and Skype for Business Room System

  • Lync Basic 2013

  • Microsoft Surface Hub



Skype Academy presents Cloud PBX Voicemail with Exchange Server on-premises Summary

I’ve seen this video available for some time on Skype academy and i finally got round to watching it so here’s a summary of the session and some added information. I hope this useful.

Great to see Cloud PBX users can leverage an on premises Exchange deployment for Cloud PBX Voicemail.

Watching the video there are a number of prerequisites and requirements for enabling this and there could be an element of confusion around the use of Azure Voicemail and Exchange UM. Azure VM is still used for voicemail with Exchange server on premises. Also key to note there are some feature missing when using Azure VM Sad smile and also check supportability of existing Exchange Server deployment first and check endpoints compatability.

Link to video –


Speaker Lynnn Roe

Agenda of the session

Previously voicemail options for Cloud PBX relied on having your mailbox in Office 365 (Exchange Online). Voicemail uses Azure Voicemail not Exchange UM and this still seems to be the case if you have Exchange server on premises.

But now Azure Voicemail can leverage your on premises Exchange mailbox with Cloud PBX users. This is great to see this as it allows more flexibility. So now you have mailbox on premises or in Exchange Online Smile


What’s is voicemail for Cloud PBX


KEY POINT – Voicemail is ALWAYS provided by Azure Voicemail it will NOT be provided by Exchange UM.

However Exchange UM policies are required to enable client side features. Voicemail play in Outlook. voicemail displayed in voice tab in SfB client.

Does require a basic exchange dial plan to be configured. UM Mailbox policy to be defined manually with on premises.

Voicemail policy is automatically assigned when online. Manual process on premises.

Some Exchange UM VM feature are not available when using Azure voicemail

  • Play on phone
  • No subscriber Access – not available for Azure Voicemail. Callers cant call into voicemail, listen to calendar or email via PSTN
  • No personal auto attendant – the ability to configure AA is there but it wont work with Azure VM. No real UM functionality

Requirements on end users – No impact on end users

For admin you have to manual configure voicemail on premises! must remember this.



Requirements for mailboxes homed on premises and theres a few of them here


  • Azure AD Sync
  • Exchange DNS points On premises with EWS and autodiscover – Azure VM can learn mailbox is homed on premise
  • Fully configured Exchange Hybrid in place (Mailboxes not migrated)
  • OAuth is configured between Exchange on premises and Office 365 – Enable Azure VM to gain access to users mailboxes on premises
  • Users NOT licenced for Exchange Online – Azure VM
  • Users IS licenced for SfB Online with Cloud PBX
  • Users enabled for UM Dial plan (ON PREMISES Exchange)

The link below expands on the prereqs


KEY POINT – Also published is a supportability matrix which is key to check first.

Note version of Exchange must be Exchange 2013 CU12 which single AD forest.

There are a number of endpoints as well so check this. Lync 2013 client seems be classed as SfB 2013 MSI.




Azure VM elevates mailbox based on licencing to discover mailbox locations.

  • If it has Exchange Online it accesses online mailbox
  • If it doesn’t have a Exchange Online licence it fails and access on premise exchange via EWS and Autodiscover. DNS must be available and accessible externally.

Provides best experience for end users and callers by utilising caching.

DOES require Exchange UM policies

Having Exchange UM policies may cause confusion! i believe it will. Although UM is not used for voicemail processing UM policies are required to be configured. Ouch.

Experience and config requirements for UM policy is the same for on premise and online, difference with online is auto config, on premise is manual by admin


Bit more details on why it works

  • Callers routed initially to Azure voicemail, playback custom voicemail greeting cached
  • Caller experience for person leaving vm is optimised
  • prevents delays for caller leaving vm
  • After vm recorded Azure VM perform lazy back end ops to ensure the next caller has better experience. Lazy ops outside of user experience so no delays or long pauses.
  • Does require and leverage EWs and Autodiscover externally.
  • SMTP failback process, if EWS fails then SMTP will be sent to users inbox.


With diagram as well. Difficult to read fully but you can see how it works.


Calls come in

Azure VM checks for cached custom recordings

If it find cached information this is played to use, if greeting not found a default greeting will be played.

Azure VM will try and authenticate online first, if found send to Exchange online vm if not found route on premises exchange. EWS and Autodiscover used to locate mailbox location. this process could take up to 30 seconds.

After this the information will be cached for the next caller.

SMTP is fall-back if EWS if unavailable.



KEY POINT – SfB Cloud PBX users homed in Office 365 WILL ALWAYS use AZURE VOICEMAIL

KEY POINT – Azure relies on Exchange UM only for client side features to work and be visible. NO UM engine is leveraged for used.

Exchange Hybrid deployment required for Azure VM to locate on premise mailbox


Hope this helps and you found it useful.


Skype Academy presents Tenant Dial Plans (Preview) Summary

So recently Tenant Dial Plans came into Preview in Skype for Business Online and Microsoft published a Skype Academy presents video on Skype Operation frameworks in their technical product training. Below is a summary and the key points i found on watching the video below.

This has for me been a long awaited feature where we can now have custom dial plans as we can do with on premises Skype for Business and Lync Server deployments. Previously SfB Online users have had dial plans assigned automatically by Microsoft which are not customisable and for basic dialling such as calling local, domestic and internationally numbers, no custom normalisation was possible which with users moving from old PBX where this was possible was being seen as a step back and being a potentially roadblock to moving to SfB Online.

What are dial plans ?

A dial plan is a named set of normalization rules that translate dialled telephone numbers by a user into E.164 (Recommended) or can be other number formats but i would always stick to E.164.

Dial Plans themselves are made up of one or more normalization rules which define how phone numbers are translated into an alternate format. Dial Plans can be assigned at given levels for on premises these can be global, site, pool and user. Looks like Online is different with merged dial plans so take note of this.

For example a user will have a dialplan and in that dial plan will be a number of normalization rules that are in affect in the SfB client when a user dials. If a user dials 01782 123456 for UK landline now SfB Online already will normalize this to +441782123456 with the default UK dial plan. Tenant Dial plans for allows SfB Online users to have more flexibility and they can define custom dial plans with custom normalization for extension dialling or local number dialling etc. I feel a very awaited feature !

Link to Video from Skype academy here

Lets go!


Great use of a scenario using Garth who plays a part throughout the video.


Garth works for Contoso

Contoso move from PBX to SfB Online

Garth comes into the Office Monday morning, signs into SfB client and dials 5551234 as he did previously with his PBX desk phone last week.


SfB Client ahs incorrectly normalized this Sad smile

Gareth hits enter and dials and it fails

Garth listens to Diagnostic announcement service which lets him know they have dialled a number incorrectly.


Garth dialled correctly as he was used to with his PBX but the number was normalized incorrectly, a user wouldn’t and shouldn’t have to know about really as its done for them in the background.

Summed up below Garth is SAD and he wished he could dial number like he used to. He’s moved from old legacy PBX phone to SfB and he cant dial like he used which gives a poor user experience from day one Sad smile


SO we need to make Garth happy again Smile here comes Tenant Dial Plans !! Wohoo !


3 Simple things to take away for this session.

Tenant Dial Plans creates support for tenant based custom dial plans in Sfb Online, these rules and dial plans, create custom normalization rules and applicable to specific USER or ENTIRE tenant.

Custom Dial Plans are still in PREVIEW and subject to change as noted below so set expectations on custom dial plans from day one with users if you are using them during the preview. This training is Feb 2017 and current at this time only.

Any Issue please log in Office 365 support portal.


Sign up for Tenant Dial Plans here and requirements to join the preview are below as well.


Tenant Dial Plans and SOF

Break into Plan, Deliver and Operations Phases of SOF.


Plan Phase

What are Tenant Dial Plans??

Based on overwhelming customer feedback, single county specific dial plans are not enough and customers want dial plan customisation that they have or had with on premise deployment for SfB Server in SfB Online. End user experience was impacted when migrated, users felt they had lost out on functionality by moving from PBX to Cloud PBX which isnt good.



  • LIMIT of 25 Normalization rules per dial plan – Key for planning !
  • Applies to Cloud PBX and Hybrid users using CCE and dial out for Cloud PSTN Conferencing !
  • No changes in routing / PSTN usages

Before Tenant Dial Plans

Very basic normalisation rules

Dial plans has always existed but were basic


Now there are two types of dial plans

  • Service – Always existed and has always been applied – CAN NOT be changed
  • Tenant – with two subset types. Default applied to all Office 365 tenants.

Tenant dial plans can be scoped in two different ways:

  • Tenant – Global – applies to all users in tenant
  • Tenant – User – applies to specific subset of users who have been granted this.


How these Dial Plans now work together


Dial plan scope / Hierarchy

Key Point – Hierarchy of Dial Plans works differently to Lync / SfB Server on premises ! Global Site Pool and User, you would apply the lowest level.

If you applied pool level and site to a user then the Pool level would apply, site is ignored completely.


For Tenant Dial plans these are merged together to come up with affective dial plans. Three different categories

1 – No tenant global plans , no user dial plan – only dial plan dialled is service country dial plan

2 – Tenant global , no user level dial plan – Merge Service level and tenant global

3 – Tenant user dial plan – ignore tenant global dial plan and merge tenant user and service country

Found this information as well taken from here

The following is the inheritance model of dial plans in Skype for Business Online.

How dial plans are inherited in Skype for Business Online.

The following are the possible effective dial plans:

Service Country If no tenant scoped dial plan is defined and no tenant user scoped dial plan is assigned to the provisioned user – the user will receive an effective dial plan mapped to the service country associated with their Office 365 Usage Location.

Tenant Global – Service Country If a tenant user dial plan is defined but not assigned to a user – the provisioned user will receive an effective dial plan consisting of a merged tenant dial plan and the service country dial plan associated with their Office 365 Usage Location.

Tenant User – Service Country If a tenant user dial plan is defined and assigned to a user – the provisioned user will receive an effective dial plan consisting of the merged tenant user dial plan and the service country dial plan associated with their Office 365 Usage Location.

Planning Steps


First off Are custom rules required ? Majority of cases this will be required as Service Country as very basic.

  • Can you use tenant global dial plan for all users and keep it simple or do you need user specific ?

No details on creating number plans recommends to look online for other content, ill added some references at the bottom of this post.

Recommendation to maintain consistency on tenant dial plan names !! Key to have a naming standard makes it easier for admins! Same with on premises. Keep it simple !

Also checkout Skype optimizer for all your Dial Plan needs and Tenant Dial plans are coming here to Smile


Have on premise deployed already then check what’s in place and also check if these are actually required or not ? Only use what you need ?

Export from on premises and import to SfB Online

Migration from legacy PBX have a look at old system and add to file to import


Tenant Dial Plans are cmdlet only (Make sure you know how to connect to your Tenant Via PowerShell) Link here

Enable UI in couple of months

Not currently supported with current Cloud PBX Certified IP Phones ! No support was required when qualifying IP Phones as tenant dial plans didn’t exist. This is being looked at in the future.

Working with Tenant Dial Plans


Table displaying scenario and cmdlets to use.

Note – using variables in the cmdlets

7 digits dialled and append +142 infront (Goes back to Garth)

Using Get-csEffectiveTenantDialPlan is a good way to check merged dial plans for users and also testing your rules using –dialledNumber

UseOnPremDialPlan must be set to False if you want Cloud PBX users to use Tenant Dial Plans.

For the PowerShell cmdlets and scripts head over to here for examples from Microsoft you can copy and paste Smile and also details on how to connect via PowerShell to your tenant which is key as there is currently no GUI for tenant dial plans.

In action – Back to Garth




Garth is happy and his normalization is fixed Smile 

Changing Tenant Dial Plan


First we look at deleting a dial plan using remove-cstenantdialplan specify the identity and apply force. Forces removal even if assigned to users. without –force you will have to ungrant it from users first (Recommended way) try not to use –force if possible.


Create input CSV, example above shows example CSV file for importing.

Use CSV in script below


There’s also an example for exporting on premises here which instead of using a CSV it uses XML. Again before exporting and just importing please review if all normalization are actually required ? also remember the 25 normalization rule limit in online as well.


Operate SOF Phase

Some useful troubleshooting information.


What to look for when troubleshooting

Run cmdlet – Get-cseffectivetenantdialplan

Open Client log file with Snooper > Search for LocationProfileDescription


Before – He was assigned Service / Country Dial plan for region

After – Dial Plan has been assigned. Effective dial plan that is combined with Service and Tenant Global. The numbers don’t match as they are merged but the start of the dial plan string is the same.




Key parts for me were

  • Merged dial plans – this is something to remember
  • Limit of 25 normalization rule per dial plan
  • New cmdlets – Using get-cseffectivedialplan is great for troubleshooting
  • No Dial plan UI currently
  • IP Phone doesn’t support tenant dial plans
  • Dial plan naming is as key online as well as on premise


More Details


Create and Manage

Skype Optimizer – Tenant Dial Plans coming soon

Hola Amigos! Skype for Business Cloud PBX with PSTN Calling in Spain GA now

HOLA Amigos ! great news for Spain, Cloud PBX with PSTN Calling in Spain is in GA now.

What is Cloud PBX with PSTN Calling?

Cloud PBX is offered from Skype for Business Online and PSTN Calling is an add service that provides telephony functionality and Microsoft are the PSTN Carrier. Microsoft a telephone number and PSTN calling services and billing. PSTN calling provides users the ability to make and receive phone calls outside of the organization. Cloud PBX with PSTN Calling does not offer the same functionality as an on premises deployment of Skype for Business Server with Enterprise Voice with on premise PSTN providers so be aware of this.

Microsoft are expanding the countries they provide PSTN Calling, France was the one before in early December and now Spain couple of months later has been added so Microsoft have five countries so far and are expanding.

Some highlights on the information I’ve found so far on PSTN Calling for Spain

From Microsoft’s Countries and regions that are supported for Skype for Business Online PSTN Services web page here

Spain is now listed below so in total we now have five countries available


Total Minutes available for Spain

  • 1200 Domestic
  • 1200 Domestic or 600 International minutes (which ever is reached first per month)


Thought id take a peck on on tenant and see what numbers are available.

I can now select Spain and they have a great selection of cities available for numbers which is great.


Overall another great step in expanding Cloud PBX from Microsoft i think and quickly after France went GA as well.

Where next for PSTN Calling from Microsoft ?

Having checked up on i cant see any new countries in preview at the moment but I’m sure it wont be long

Adios Amigos !

Call Quality Dashboard Online (CQD) –Upload Building Information

Following the SfB Video Broadcast from Microsoft i wanted to get my building information into CQD Online so i could take advantage of CQD Online Location Enhanced reporting and drilling down by Building and subnet.

The more info we upload the better the info in CQD Online.

So first i checked this out the link below and gave me a lot of info on CQD.

First you need enable CQD on tenant which i had already done so i skipped this part but below are the steps taken from link above.

  1. Sign in to your Office 365 organization using an admin account, and then select the Admin tile to open the Admin center.
  2. In the left pane, under Admin, Select Skype for Business to open the Skype for Business admin center.
  3. On the Skype for Business admin center, select tools in the left pane and then select Skype for Business Online Call Quality Dashboard.
  4. On the page that opens, select Login with your Global Administrator account and then provide the credentials for the account when prompted.

Now to upload building information.

Once logged into CQD online go to settings (cog) in top right corner


Select Tenant Data Upload

Here you can upload information.

The data file type currently is limited to Buildings but I’m sure more will come.


To upload Building information it must be formatted in .csv or .tsv file format which specific data types and formatted correctly. (This took me a couple of attempts to get it correct) was way to early or I’m dumb.

Listed formatting on Microsoft site is below. BUT its key to review the items above this table as well !!!


The formatting must also comply with the following !

  • The file must be either a tsv file, which means, in each row, columns are separated by a TAB, or a csv file with each column separated by a comma.

  • The content of the data file doesn’t include table headers. That means, the first line of the data file should be real data, not headers like “Network” etc.

  • For each column, the data type can only be String, Number or Bool. If it is Number, the value must be a numeric value; if it is Bool, the value must be either 0 or 1.

  • For each column, if the data type is string, the data can be empty (but still must be separated by an appropriate delimited, i.e. a tab or comma). This just assigns that field an empty string value.

  • There must be 14 columns for each row, and each column must have the following data type, and the columns must be in the order listed

  • The data file must be a tsv (Tab-separated values) file or a csv (Comma-separated value) file. If using a csv file, any field that contains a comma must be contain quotes or have the comma removed. For example, if your building name is NY,NY, in the csv file it should be entered as "NY,NY".

  • The data file must be no larger than 50MB in size.

  • For each data file, each column in the file must match a predefined data type

  • IMPORTANT: The network range can be used to represent a supernet (combination of several subnets with a single routing prefix). All new building uploads will be checked for any overlapping ranges. If you have previously uploaded a building file, you should download the current file and re-upload it to identify any overlaps and fix the issue before uploading again. Any overlap in previously uploaded files may result in the wrong mappings of subnets to buildings in the reports.

So after a couple of goes here is the formatting from the table above in Excel


and in CSV,USA/Seattle/SEATTLE-SEA-1,24,SEATTLE-SEA-1,Contoso,IT Termination,Engineering,Seattle,98001,US,WA,MSUS,1,0

Download my .csv file as template download here

More buildings can be added if required in the CSV on the line below the first building.

For me .csv was easy with excel. To create tsv i used Excel save as type Text (Tab delimited) (*.txt) which you cant upload directly so i had to rename file from .txt to .tsv and that worked.

Key things / My Mistakes i have highlighted in RED above but

  • I found REMOVE THE table headings!
  • Must be 14 Columns! not 14 ROWs.

When CSV file is ready you have to upload, if there’s errors it will say invalid or actually point out where the error is like Column 3 row 4. The Microsoft page states the upload process utilises Azure Blob storage which is cool.

From CQD dashboard in data upload go to browse and select csv file


Select Start dates for data


You can add end date or leave blank and it will start end date as present day.

Click Upload

Hopefully you will get Upload successful


Then the file will be visible in My File Uploads.

From the file uploads you can remove file and download which is handy.


Here i saw the Process Status Saying “In Progress” for a long time and it still is. So ill keep checking back on this. Perhaps there’s a day on the back end that runs at scheduled times.

** update ** – checked on the process state the following morning and it was saying “Processed” some it takes some time for this to be processed it seems.


Only after the building upload was Processed would below information populate. If Buildings are not displayed or Wired / Wi-Fi Inside not populated please wait and check back on your Process status in settings Tenant data upload. Same place you uploaded your CSV or TSV.

So lets check out the difference now my file is processed, if i go to CQD and Server – Client the Wired Inside is populated


Next i checked out the Location-Enhanced Report and this was populated so i could select by buildings i had uploaded

Building – Wired


Buildings –Wi-Fi – Has much more data as my Surface is mostly on Wi-Fi these days.


Download Link for CSV


Export from On Premise CQD

You can skip this if you haven’t deployed CQD on premises for Skype for Business Server

Already have CQD deployed on premise with SfB Server ? and have added networks and building into CQDArchive database ???

Then there’s a script available to export the information for you. Listed in the link here

It does note the following when using the script as ExpressRoute column has to be added manually! Its included in the script and has value of 1.

The following sample SQL query selects all the required columns. ExpressRoute isn’t in any of the existing QoE tables, it is a column that should be manually added by admin, so temporarily use 1 in the following SQL script). Make sure to use the correct database name for your environment.

Script below i had to update QoEArchive DB names

SELECT  isnull(Network, '') AS Network
      ,REPLACE(REPLACE(isnull(NetworkName.NetworkName, ''), CHAR(13), ''), CHAR(10), '') AS NetworkName
      ,isnull(NetworkRange, '') AS NetworkRange
      ,isnull(Building.BuildingName, '') AS BuildingName
	  ,isnull(OwnerShipType.OwnershipTypeDesc, '') AS OwnershipTypeDesc
	  ,isnull(Building.BuildingOfficeType, '') AS BuildingOfficeType
      ,isnull(BuildingType.BuildingTypeDesc, '') AS BuildingTypeDesc
	  ,isnull(Building.CityName, '') AS City
	  ,isnull(Building.ZipCode, '') AS ZipCode
	  ,isnull(Building.CountryShortCode, '') AS Country
	  ,isnull(Building.StateProvinceCode, '') AS State
	  ,isnull(Building.Region, '') AS Region
	  ,isnull(Building.InsideCorp, 0) AS InsideCorp
        ,1 AS ExpressRoute       
  FROM [QoEArchive3].[dbo].[CqdNetwork] Network
  left join [QoEArchive3].[dbo].[CqdBuilding] Building
  on Network.BuildingKey = Building.BuildingKey
  left join  [QoEArchive3].[dbo].[CqdBuildingType] BuildingType
  on BuildingType.BuildingTypeId = Building.BuildingTypeId
  left join [QoEArchive3].[dbo].[CqdBuildingOwnerShipType] OwnerShipType
  on OwnerShipType.OwnershipTypeId = Building.OwnershipTypeId
  left join [QoEArchive3].[dbo].[CqdNetworkName] NetworkName
  on NetworkName.NetworkNameID = Network.NetworkNameID

In my lab i had CQD deployed but i hadn’t uploaded any building information so took the script and on first run i got the below error. The RED lines gave it away. Wrong DB NAME!


This was because the QoEArchive DB was not by default called QoEArchive3 as it is in the script. I updated the database name to match my QoEArchive Database name and it ran ok.

As you can see my lab had no information so i went and added some from this great script here


Added Building using SQL script (This was for testing export only) If you do not have information populated then you don’t have to do this step. Its just showing the export process from an on premise CQD deployment only.


Save results as CSV



Open CSV – Needs a bit of editing but the information is there.



Hope this helps.