Home » Skype for Business (Page 2)

Category Archives: Skype for Business

Plan to Move Your Skype for Business Workload to Microsoft Teams

Now that Ignite is coming to an end and all the hearsay has turned into fact, I wanted to gather my thoughts and formulate an opinion and recommendation on the impacts of what’s been announced. Microsoft’s announcement to concentrate on Microsoft Teams as the cloud offering as the unified communications platform going forward has been met with both enthusiasm and bewilderment across the IT spectrum. It seems that unified communications is now done with and enter intelligent communications that leverage the power of cloud AI and service based workloads. I joked before Ignite that the saying “Let me Skype you” will disappear to “Hey I’ll Teams you on Teams”, just doesn’t sound right. But now perhaps its more “Hey IC You!”… nevermind, i’ve never really cracked the dad joke scene..

I am not going to go into detail as to what is coming to Teams and all that, it’s been well covered in Ignite sessions and fellow blogs. I want to strip back all the hype around it and discuss the enormous challenge that Microsoft has laid out for itself and us as well. Seeing new ideas, new tech and the cloud evolve is great for cutting edge innovation that has the WOW factor, but the harsh reality of enterprises means that this innovation and in particularly the speed of it often raises more worrying questions than positive ones. Before we look at this, I am a supporter of Microsoft Teams, and I can see real benefits of what Microsoft are doing with it in the cloud. It makes sense. But it has put legacy UC into the washing machine on full spin, because the fact is that most of us aren’t quite ready for IC just yet. Although if you waited for people to be ready, then you’d never push the boundaries. However, having said that I do feel that this move to Microsoft Teams is a bit premature. Not so much the strategic decision, but more the marketing message timing has only added confusion rather than clear understandable direction. In my view, the sensible approach to the strategy would have been to continue developing Teams capabilities and releasing them without the fanfare of Ignite 2017. At a point that Teams had comparable capabilities with Skype for Business Online, it would then make sense to broadcast the messaging to the world. In my opinion the earliest that this should have happened would be probably Enterprise Connect 2018, possibly Ignite 2018.

The reason for this is that enterprises would slowly see the direction Microsoft are taking and would have time to adjust their approach with more comfort. Yes, by the time Microsoft officially announced the direction it would not be so impactful, but at least enterprises would have more context and be prepared. However, by announcing this now, I think Microsoft have potentially caused themselves more damage than success. The reason I think this is because Microsoft Teams is not at a point where customers can truly believe that it is the direction they should take. Microsoft have a monumental task of building not only back end but also a whole new front end application and service, an entire ecosystem if you will and through the customers eyes they haven’t even left the starting gate before announcing their plans.

This of course is not an entirely accurate statement to make. Microsoft have been dogfooding calling in Teams for a month or so, so behind the scenes they are further around the track that publicly visible, but nevertheless, enterprises judge an application based on what is supportable and generally available not preview, or preview preview. So today Microsoft says Teams is the future and Skype for Business Online is going away, leaves them worried because they have not seen the new kid on the block develop to a point where they feel the potential. Aside from this, we have been in a constant battle with customers over the last 2 years to convince them Cloud PBX is a suitable platform for their voice workload. It’s taken 2 years because enterprises never want to be the first ones to test a new service, especially where their communications are involved. At least 70% of my customers have said to me, “we want to go cloud, but it isn’t mature enough, it hasn’t got this feature or that and we just are uncomfortable with it because we don’t understand a lot about it, we want to see how it develops first”. Ok, you could argue that it is my job to convince them, and you’re right, but I will only recommend a solution to a customer that I know fits their requirements. Sometimes that is cloud, others on-premises and hybrid. But even if I convince them to go hybrid or trial Cloud PBX they go with some trepidation and struggle to commit fully to the cloud first model, for the simple reason is they cannot get over the maturity mental block.

By Microsoft declaring that people should look towards Teams instead of Skype for Business Online now, only serves to re-ignite (see what I did there?) the same concerns that we have battled to overcome over the last 2 years. To some degree I feel like we are starting again. Now factor in that Microsoft have not committed to an accountable roadmap for Teams development, how can businesses plan to migrate to the cloud or Teams without a solid roadmap that they can rely on? I was looking at a slide from ignite and it stated that if you’re a customer and you haven’t got Skype for Business Server or Online and are planning to go cloud, then you should look to deploy Teams. On one side it seems sensible, but the fact is Skype for Business Online today meets probably 90% of their requirements from a UC tool, while Teams meets about 30%. If you’re a customer who has finished or in the middle of a cloud UC transformation project this is a particularly worrying and confusing time. On one hand Microsoft are telling us to move to Teams, but teams lacks the basic features of UC like federation and more advanced stuff like advanced voice capability, you will question that direction!

Yes, all this great stuff is coming and soon, but we just don’t know if it will be next month, next year and where in next year, so how can you plan for it? If Microsoft follow tradition, they’ll announce a new feature is coming, then release it in preview, then 2-3 months later it will be GA. This often means when you plan for a Q release it ends up being Q+1 by the time your tenant has a version that is supportable. The Teams roadmap is broken down into two halves of the year, 1H and 2H. That’s 6 months guys, that is a huge window for error. How can I possibly rely on this? Again, I appreciate these things take time, which is why I am somewhat perplexed as to why Microsoft has chosen to announce this now as it seems like a right recipe for a false start.

We cannot fight the direction of the cloud. For those of us who have embraced cloud and the evergreen model, this should come as no surprise and you should be prepared to react to the ever changing fluidity of the agile cloud. However, regardless of whether you are cloud today or planning for cloud in the near future (0 – 12 months) you should be using the time to consider carefully your options.

For anyone considering Microsoft Cloud UC today, it is my recommendation that you ignore the messaging from Microsoft to look at Teams as your only UC/IC platform. Instead plan for leveraging the tried and tested platform that is Skype for Business Online. For the next 12 months at least it is going to offer you all the requirements you need from day 1 through to 365. Your investment will not be wasted as when features transition the process will be largely academic, rather than a migration from one system to another. Skype for Business Online Enterprise Voice capabilities fall under Cloud PBX. This is a separate component to Skype for Business Online today. Cloud PBX is being renamed to Phone System and Microsoft Teams uses Phone System for its enterprise voice capabilities. The same with Audio Conferencing. Therefore, if you invest in Microsoft calling plans and Microsoft Phone Numbers and have users assigned, nothing changes. If you have ported your numbers over to Microsoft and assigned them to users, nothing changes. If you have purchased Skype for Business Online compatible phones and meeting room devices, these will still work with Phone System and video will still work with Teams, nothing changes. Org AA,  Call Queues, and Voicemail these aren’t Skype for Business Online components, they are independent services built in Azure, nothing changes. Your investments are not wasted, they are just delivered to another client experience. Essentially it will be a matter of a policy change to tell Office 365 to use the Teams client for Chat and Audio rather than Skype for Business client. Of course, there may be subtle changes, we may need future firmware, DNS, Firewall updates to devices and networks as Skype for Business Online gets retired and nativity develops in Teams, but these are superficial maintenance changes rather than a full blown migration project.

However, you should not ignore Teams until the final moments of Skype for Business Online existence. Instead you should introduce Teams shortly after people have got used to Skype for Business Online to avoid confusing use cases. I’d recommend a 3 phase approach, releasing initially Skype for Business Online quick win modalities such as Chat, federation and conferencing. In Phase 2 introduce Teams with restricted functionality to group based collaboration while Microsoft develop and the roadmap becomes clearer. In Phase 3 look to migrate your voice workload to either Skype for Business Online or Microsoft Teams whichever makes the most sense and meets your requirements at the time. This approach buys you time while still pressing on with your cloud migration and leveraging the benefits of cloud. It also means that your users will understand Teams and how to use it, so that when you transition from Skype for Business to Teams, you don’t need to deliver a whole new training and adoption programme.

If you are considering using OPCH with cloud, then the announcements around Cloud Connector Edition probably means that you are somewhat confused as to wait or commit? My advice here is that if you need CCE today then look to purchase separate units rather than combined SBC and CCE appliances. Purchase your SBC and use CCE as a standalone server. This protects your investment moving the next gen phone system when Microsoft will support direct SIP trunks from your SBC into Teams. If you purchased appliances with SBC and CCE integrated, then you can still use these devices, just but only the SBC component. So long term the separate approach is probably going to work out the most sensible and cheapest solution in my opinion.

If you are a hybrid customer today with Skype for Business Server 2015 and Skype Online, the story for you is far more grey. It is likely that this story will not become clear until at least Ignite 2018, so for the moment you do not need to worry. Skype for Business Online is not going away any time soon, personally I cannot see it going away for at least 2-3 years. So you have time on your side here a little. However, you too should be looking to introduce your workforce to Teams. Again start with the quick wins and the easiest possible messaging around use cases e.g. persistent chat is now in Teams etc. Even On-Premises users can take advantage of Teams because Teams has no dependency on Skype for Business hybrid or Skype for Business Server.

Skype for Business 2019 vNext server announcement is a positive statement from Microsoft that they consider on-premises to be firmly catered for. They went so far to claim that 2019 is unlikely to be the last edition as well. This should on face value please a lot of customers that going to cloud is just not possible for them. However, there was certain messaging around vNext that implied a hard dependency on cloud features. vNext is a topic that us MVPs have been engaged with Microsoft on prior to Ignite and we worked with them to define what we see as progress and what is important to our customers. It appears that some of this has made it in to the early commit at Ignite, being that we saw massive value in leveraging cloud services included in your E5 licencing SKU for on-premises users, such as Azure Voicemail, Call Queues, Audio Conferencing and Org AA. However, this won’t be a hard dependency and there will be on-premises alternatives. I know many of you consider vNext to be a downgrade, but really who used a Director server these days realistically? I totally get the negativity around the drop of Standard Edition and this caught me by surprise. I know one server is supported but requires separate SQL which means the cost of a comparable 2019 deployment to 2015 Standard Edition is quite a jump with the added SQL licence.

The message here seems to point that if you only require a standard edition server, then probably cloud is the route you should take. However, I think there have been use cases that Microsoft have missed for enterprises who have deployed a Standard Edition server within an Enterprise topology for local branch connectivity and features. This also brings me to the next point in that they have also dropped the SBA role too. I need to wait to see how this story develops as they cannot afford to ignore branch survivability in vNext, they’ll need a solution to that, maybe they will allow you to deploy a mediation server with the registrar component in colo in vNext? Who knows but I am sure we will find out.

They also announced that vNext can only run of 2016 OS and SQL, no surprise since by the time this is released 2012 will be 6 years old. But the most concerning point was that there appeared to be no coexistence story with Lync 2013 or Skype for Business 2015. This is pretty worrying as I cannot see how you can migrate to vNext on a global deployment where a big bang approach is not possible. There is going to have to be some kind of interop story there, whether it is all done over federation or some kind of proxy or something else maybe. But clearly there is a mass of work to do on vNext and at this stage it hasn;t even made it off the cigarette packet yet.

It seems that vNext has been architected to promote your journey to the cloud, or to at least make it easier than it is today. The new cloud / on-prem aware portal is a sign of how to leverage hybrid cloud to maximum benefit. It will be your choice as to use it or not. Whatever happens, there are many unfinished stories, it will become clearer as time passes by. We should not be worried or come to premature conclusions but approach this with an open mind. I have no doubt by the time this latest plan around cloud and on-premises comes to pass we will have wondered what all the fuss was about.

Polycom RPRM Phone Provisioning Demo with Skype for Business

I have been testing Polycom’s Real Presence Resource Manager, RPRM for short phone provisioning solution for the last few days. I thought I would share with you a demo of the experience.

Historically, if you wanted to provision VVX phones for your Skype for Business voice deployment you had 2 choices; use Polycom’s ftp provisioning solution, or use Event Zero UC Commander. Although the ftp solution was free, because it used built-in windows tools and XML files, people often preferred EZ’s solution because of the nice friendly UI experience meant they could provision phones without having to trawl through the 635 page VVX admin guide each time they wanted to make a change!

Now it seems Polycom are getting into the provisioning game with RPRM 10.1.0 now including Phone Management. This does not replace the free ftp solution, but allows you to leverage a single management solution for your Polycom Video Conferencing and Phone estate.

Watch the demo here to find out more

In summary, i found the tool incredibly easy to provision on Hyper-V and within an hour has mastered the basics of provisioning a phone. The intelli-sense configuration profiles combined with the ability to partition your configuration between global, endpoint groups, sites, devices and specifically down to an individual endpoint makes this a truly scalable and elastic enterprise tool.

Features I really like:

  • Being able to remote call control to prove an endpoint is working in advance of a meeting for instance
  • Being able to see the running config and log files easily
  • Being able to paste in your old XML config into your config profiles
  • Complete Zero Touch Provisioning out of the box
  • Simple to understand and logically built

Things that could be improved:

  • UI menu could do with being tweaked, having re-expand menus and scroll back up the page is a bit tedious after a while
  • Ability to schedule device updates at a granular level
  • Improved location awareness for asset tracking
  • Ability to distribute firmware to remote distribution points (without needing another full RPRM server) to ease WAN constraints (UDM has this)

Of course EZ’s UDM Pro is a competing product and will do all what RPRM can do with VVX phones and has the added value of number management on top of this so I can see people still venturing that way. However, the biggest USP here for using RPRM is that you now have an end to end support chain with one vendor rather than two. Plus, buy enough VVX’s and Trio’s in one go and I am sure that RPRM will come at a very competitive price!

Secure Your Meetings Now–No More Excuses!

In Skype for Business you can choose from two meeting creation types, secure or dedicated meeting space. During my time on deployments I always recommend and try to steer customers down the secure route as it avoids a multitude of situations around conference bleeding. Imagine having a conversation with management discussing an employee’s future, and you’re having a meeting with the employee immediately after the meeting. Maybe you leave 15 minute gap, but the meeting runs over by several minutes, then the employee joins early expecting silence but hears you talking about how to best fire them! Sticky situation right?

However, some choose to go down the dedicated route because “its easier”. But ease often comes with compromise. Aside from the conference bleeding, if not used in the correct manner then you leave yourself open to some serious abuse. Not only from internal users, but anonymous users as well that could have some serious impacts on your business from financial to corporate espionage!

Did you know its relatively easy to find a conference on the internet? Even if you don’t have the meeting URL? Dedicated meetings make it super easy, while secure meetings a lot harder.


Google “Skype for Business Web App” and go to page 3 onwards (actually look who is on page 1….) and you will see some names with URLs like join.domain.com/meet/user.name/meetid



Notice that dedicated Meeting IDs are exposed (Last result). Undefined means that the conference has expired and no longer available. On the meetings that have an ID you can click to join them anonymously using the Skype for Business Web App


After that you are at the mercy of the conference policy applied to the conference organizer! If it allows anonymous users to dial out, then any one can use this conference to dial out to the PSTN and call whoever they want for free (well to them at least!). If you have added any attachments or other meeting content this is also accessible by the anonymous user (policy dependent).

So now do you want to secure your meetings?….. I thought so!

There are some valid reasons to use dedicated meeting spaces, but if you are using conferences for internal private communication then it really should be secure. The problem here is that meeting join pages are can be indexed by search engines. So you need to take action to prevent indexing as well as employing adequate conference policies that protect you in a last line of defence against fraud or espionage.

Recommendation 1

Ensure that your conference policy applies the following permissions

  • Allow Anonymous Dial Out set to false
  • Profile your users, do you need to allow anonymous users into a meeting for some of the user departments?
  • Allow External users to save content set to false
  • Allow external users to record meetings set to false
  • Make sure you do not allow anyone to bypass the lobby

There are others that you may consider, full settings found here: https://technet.microsoft.com/en-us/library/gg425788.aspx

Recommendation 2

Block search engines from indexing your meeting url. You can do this using IIS on the External Skype for Business Website on ALL your front end servers. You can do this in multiple ways and no single way really is 100% fool proof. The most obvious method is to use a robots.txt file located in the root of the External Skype for Business website. Most reputable search engines use this file to figure out if they are supposed to index or not.

  1. Create a text file in the root of the External Website folder for Skype for Business called robots.txt
  2. Add the following code and save it.
# Make changes for all web spiders
User-agent: *
Disallow: / 

The second method you can use is to use the HTTP Response Header

  • Open IIS Manager
  • Click on the Server name
  • Then click on HTTP Response Headers and open it
  • Click Add to add a new response
  • In the Name field enter X-Robots-Tag
  • In the Value field enter noindex

You could also deploy IIS Search Engine Optimization module from the IIS Web Gallery and control indexing via a UI. More Information here: https://docs.microsoft.com/en-us/iis/extensions/iis-search-engine-optimization-toolkit/managing-robotstxt-and-sitemap-files 

Recommendation 3

If you find that your meetings have been indexed, I recommend that the immediate course of action is to re generate your conference IDs and delete your old conference(s) (every event that uses the same ID) out of your Outlook calendar. This will deactivate the conference on all conference servers making it unavailable to join.

Then you should request that the search engine removes the link from their search. Here are the removal links for the major engines

Google – https://www.google.com/webmasters/tools/removals?pli=1 

Bing – https://www.bing.com/webmaster/tools/content-removal?rflid=1

Yahoo – Does not have a removal tool – so you’ll just need to sit tight


Skype Broadcast Meetings–Now Allows External Team Members to Join

Skype Broadcast Meetings seems to have had a quiet update recently. This may be already common knowledge, but I have only just discovered it. Historically we couldn’t add external team members to a broadcast meeting. By this I mean being able to delegate the presenter / producer role function to users from SIP domains not within the same tenant as the organizer.

There was a rather dirty work around by adding a service account to the meeting and allowing the external member to sign in with that to the broadcast login portal but remain signed into their Skype client as their normal organizational account.

Its seems though that this has changed, and we can now add external users as team members to a broadcast meeting.


You have to click on check names to verify the member and this will look up your contacts in Outlook  / Exchange Online (although testing with a few that I know aren’t there also seems to work). From testing it seems that if there is an object in Office 365 then this is addible, if a user does not have a 365 object then this cannot be looked up. It appears that the check names functions can look up across multiple tenants? Still not sure how accurate that is, but seems to be the case.

So requirements seem to be:

  • External presenter must be either homed on Skype for Business Online or Hybrid
  • External presenter’s Skype for Business Server must be able to federate with Office 365
  • External presenter must be assigned a licence in Office 365 that enables broadcast meetings
  • External presenter if on-premises must have their account synchronised with Azure AD

When the external user joins, they are able to authenticate with broadcast meetings using their own 365 credentials and join the broadcast as a presenter



Thanks to Shawn Harry for being my guinea pig!

Skype for Business–Thumbnail Image Quality Issues

Over the weekend I was scanning a few message boards and came across a post asking

Why does the image of a person look ok sometimes but pixelated at other times for the same person?

To clarify the problem is when a user answers a call from a person and the picture of the caller is expanded and displayed in the conversation window.

Unlike most quality issues within Skype for Business, this problem is not down to lack of bandwidth or some other Skype for Business trick to ensure best possible experience. The actual cause of this is simple.

Back in the days before Exchange 2013, Lync didn’t really have a plausible Photo store worth having anyway. We were limited to using Active Directory based photos or using a web site hosting images of each user. Most organisations used AD based photos, and in so doing limited the quality to a 96 x 96 pixel image of no more than 100KB in size.

So give you an idea of what this looks like, here is an image at 96 x 96 pixels


The first problem is that people usually use pictures taken in landscape format, rather than portrait. The problem with is that when resizing to equal aspect ratios for horizontal and vertical axis is that they are not uniform. So converting a 1200 x 600 image to 96 x 96 pixels means that the horizontal axis is resized out of proportion to that of the original resolution. This makes the resized picture seem thin and long. As you can see in the above example it is pretty hard to make out any type of facial definition and is about as much use as a thumbnail image as a blank placeholder. A picture taken in portrait mode fairs better with resizing due to the 1:1 aspect ratio. So when resized to 96 x 96 pixels it comes out a bit clearer


But the story does not end there. In the Skype for Business client will actually retrieve the AD thumbnail photo and resize further to 48 x 48 pixels to get to the address book thumbnail display size of this:


Look familiar?

When this person calls you, or you call them, the conversation window expands this 96 x 96 pixel image into 648 x 648 pixels, and herein is the problem… The result blurred image!



The introduction of High Resolution images in Exchange 2013 allows users to upload their own images to Exchange. This means that they are able to upload an image with a resolution of 648 x 648 pixels. As with AD, the same rules apply, the image should be in portrait mode to get the best resize scaling. There is no value in uploading an image to Exchange higher than the resolution of 648 x 648 pixels as that is the largest size Exchange supports. If you upload an image of greater resolution it is going to be resized to this anyway. If you do not properly format and scale the high resolution image then you are reducing the potential image quality.

Here is a example of a high resolution image at 648 x 648

Image result for man portrait

However, High Resolution photographs are not the complete answer to these photo quality issues. When you upload the image to exchange a few things happen:

  • Exchange will resize your picture if over 648 x 648 to 648 x 648 pixels, so make sure that your image will scale to this resolution in the first place!
  • Exchange will store a picture in Active Directory Thumbnail attribute of 64 x 64 pixels!
  • Exchange will also store a 96 x 96 version to be used in OWA, Outlook, Skype Web App and the Skype Client

So even though you think you have solved your picture resolution woes, there is one more thing to consider and this is the reason for the image quality problems even with High Resolution photos.

Skype for Business will attempt to retrieve the high resolution photograph of the user as stored in Exchange using Exchange Web Services. If there is a problem with EWS or Skype’s ability to access EWS at the time of photo retrieval, the Active Directory thumbnail image of 64 x 64 pixels is used instead. Therefore, when the conversation window expands, it is blowing up the 64 x 64 pixel image to 648 x 648 pixels, giving you the same experience as if you were just using AD pictures…. errr because at this moment you are! Smile

So if you are experiencing issues with your high resolution photo’s quality, then this will be the reason behind it. The resolution will be to figure out why EWS and Skype are not behaving themselves for you!

Skype for Business Online CloudPBX–Calling Plans and Consumption Billing Explained

I must admit, I thought this topic was well understood, but it seems I am having the same conversations over and over, so possibly worth a blog post. First up if anyone has done this already, I apologise, I did Bingle first, and your page did not show on Page 1, I didn’t check page 2, sorry! Anyway, you should have made your SEO better! Smile #Joking.

A question I am getting a lot is:

What is Consumption Billing and do I need it?

Before I answer this question, it important that you first understand the concepts of Cloud PBX licencing.

What does the CloudPBX Licence Give You?

To begin with, CloudPBX is a licence SKU within Office 365. This is available as an add-on licence to existing E1 or E3 plans or inclusive within E5 plan. It is a “per-user” not a “per-tenant” licence, and each user that you want enabled for CloudPBX must have a unique licence applied to their Office365 account. So when you assign this licence to a user what does this user get?

Well on its own, not a great deal visually at least. But it does unlock the user to access some core CloudPBX services:

  • Dial Plans
  • Voice Routing Policies
  • Hybrid PSTN Calling
  • Azure Voicemail

The most notable feature here is the enablement of Hybrid PSTN Calling. This licence allows you to move enterprise voice users from on-premises Skype for Business to Skype for Business Online and still provide PSTN calling capability to these users via existing on-premises gateways. This is the same for existing Skype for Business hybrid setups, or using Cloud Connector Edition.

CloudPBX licence on its own does not give you any of the following cloud voice services:

  • Cloud DIDs
  • Cloud Service Numbers
  • PSTN Conferencing
  • Organizational Auto Attendant
  • Call Queues
  • Cloud PSTN Calling

What if I need PSTN Conferencing?

One consequence of moving a user from On-Prem to Online is that you change the location of conferences organised by the user. Instead of being hosted on-premises, they are now going to be hosted in Skype for Business Online. This poses some considerations for you. You may have deployed a dial-in access number to your on-premises Skype for Business conferencing service, you may have procured special conferencing SIP trunks for that service too, with several numbers in different regions for localised joins. These cannot be used to access organised conferences in Skype for Business Online.

As there is no such thing  as Hybrid PSTN conferencing, you cannot reassign dial in access numbers to the Skype for Business Online ACP service and “proxy” these via on-premises gateways like you can do with a user DDI in hybrid voice. This means that when you move a user over with just a CloudPBX licence, they are only able to organise web conferences. However, they are able to join PSTN conferences organised by someone else (e.g. on-prem user).

There are three ways in which you can enable PSTN Conferencing for a CloudPBX licenced user, in order of expense:

  1. Create a resource account on your On-Premises pool and provide details to the cloud user and they can organise on-premises hosted conferences using the Web Scheduler service and invite their cloud account as a presenter
  2. Add Microsoft PSTN Conferencing licence to their Office 365 account
  3. Bring Your Own ACP (BYOACP) service to Office365 provided by Intercall, PGi, BT Meet-me services

Expanding on the Microsoft PSTN Conferencing Licence, this is again available as an add-on to E1 and E3 plans or inclusive to E5. It is independent of the CloudPBX licence and if you have users who are not enterprise voice enabled, but require PSTN Conferencing, then this licence can be purchased / assigned without CloudPBX.

What does the PSTN Conferencing Licence Give You?

This licence grants you access to the Microsoft PSTN Conferencing network. This network consists of local PSTN dial-in numbers in over 96 (at last count) countries worldwide. This means you can host conferences in the cloud and provide cheap to no cost dial-in solutions for your participants / customers. The access numbers are Microsoft owned, and are shared amongst all Office 365 tenants / organisations consuming this service. By default, users are assigned a primary number based on the location of the user derived from their Office 365 account citizenship, but participants can join from any one of the 96+ regions using localised geographic numbers.

The PSTN conferencing licence therefore gives users an “All You Can Eat” dial-in PSTN conferencing service, without having to pay a rental fee, plus call rate minute charges, and it could work out significantly cheaper than traditional ACP providers.

However, what if you want to provide toll-free access numbers, or need the ability to dial out of a conference?

There are a few certainties in life, with one of them being “There is no such thing as free”. Therefore, for Toll-Free (TFN) dial in access, some one has to pay. Traditionally, TFN is free to the caller only in the region where the number is regarded as a TFN (i.e. 800, 888, 877 are U.S TFNs but if I call them as a UK citizen, they are chargeable to me as well), but the call charges are reversed to the custodian of the number i.e. your organisation, usually on an agreed rate card. With TFN Service numbers assigned to PSTN Conferencing in Office365, this is no different and if you want this ability, you also need to setup what is call consumption billing.

If you want to use dial out PSTN Conferencing and there are some scenarios where you will probably need to:

  • Transfer the conference to your cell phone (if you’re on the move)
  • Invite someone into the conference on their behalf, buy calling them out of the conference

Then, you also need a mechanism to pay for the outbound call. Like TFN payment, consumption billing is required. Keep this in mind for later…

What if I need PSTN Calling?

PSTN Calling is an add-on licence required for users who need enterprise voice calling features in the native Microsoft cloud i.e. not dependent on on-premises infrastructure like hybrid voice users. Currently, PSTN Calling in Skype for Business Online is available in a handful of countries and this is ever expanding (hence the ambiguity here). Like the Cloud PBX licence it is an add-on licence to existing E1, E3 and E5 plans. Yes that’s right E5 alone does not give you this licence! However, it differs slightly as a Calling Plan licence has a dependency on a Cloud PBX licence. This means to consume a calling plan licence the user must first be assigned a Cloud PBX licence.

The easiest way I can explain this is by comparing Cloud PBX with a Calling Plan licence to a mobile (cell) phone contract. You sign up with the provider for an agreed device and allocation of inclusive minutes and texts and you pay the agreed amount. That amount is split to pay the cost of the device, and the cost of the inclusive calls. The Cloud PBX licence is akin to the device rental and the PSTN Calling plan is the amount that you pay for your inclusive minutes per month.

Back to PSTN Calling plans… Depending on your country and availability, you have the choice of purchasing 2 licence models:

  • Domestic Plan
  • International Plan

For most countries the domestic plan includes 1200 minutes per calendar month that a user can consume to call numbers within their country. The U.S are slightly more spoilt, in that they get 3,000! They must talk a lot more than the rest of us! The International calling plan is slightly more complicated to understand. The international plans allow you to call numbers outside your country as well as domestic numbers. All international plans have a cap of 600 minutes for international numbers and the same amount of domestic minutes as that of the domestic plan i.e. 1200 for some, 3,000 for the the U.S. BUT and this is a BIG BUT the plan is 1200/3000 minutes domestic OR 600 minutes international, key word is OR. This means that the plan expires when either pool of minutes have been reached for that month. For example, if you make 600 minutes of international phone calls in week 1, then your plan is empty and you cannot consume the domestic minutes from this plan until it renews, the next calendar month!

Fortunately there are a few safety mechanisms in place. The first one is that all PSTN Calling plans are pooled at tenant level. This means they go into a big pot that all PSTN Calling enabled users can consume. So if one person runs out of minutes, and another is under utilising theirs then they can be consumed by the heavier user. The second is consumption billing….

What does PSTN Calling Licence Give You?

Before we delve into consumption billing, lets talk about what a PSTN Calling licence gives you. As mentioned before, it has a dependency on the Cloud PBX licence and like this licence needs to be purchased per PSTN Calling user, not per tenant. You cannot buy one PSTN Calling licence and share it out over multiple users!

There are a few things that happen when you purchase a Calling Plan licence. The purchasing (not assignment) of the licence(s) unlock all the Cloud PBX calling features:

  • Service Number Acquisitions
  • Subscriber / User Number Acquisitions
  • Call Queues
  • Organizational Auto Attendant
  • Cloud Basic E-911 capabilities

Now you’re able to port numbers into Cloud PBX from legacy carriers, acquire pools of DDIs and Service Numbers from Microsoft and assign to users and services. There is a formula that is applied on number acquisition from Microsoft. For every 1 x PSTN Calling Plan purchased, you get 10 extra numbers you can acquire and apply to services such as OrgAA, Call Queues and PSTN Conferencing as well as 1 per licenced user. However, if you port your existing numbers, there is no limit to the amount of numbers that can be assigned to your tenant. However, bear in mind that you can only assign numbers to users who have a PSTN Calling licence applied to them. You cannot port a number and assign it to a hybrid voice user (that just wouldn’t work!).

Lastly, the PSTN Calling licence allows calls to route between PSTN and the cloud user who has been assigned it (normal phone call).

PSTN Calling plans on the face of it seem a bit expensive, especially in the licencing model adopted by Microsoft. People ask, “why can’t I just buy one licence and it is a tenant licence rather than per user?”.

I don’t have the answer to this question, I am not Microsoft! But I can hazard a educated guess. The PSTN Calling Plan lights up a lot of cloud voice features, of which in other licence SKUs are not chargeable (OrgAA, Azure VM, Call Queues, SBCs, Network etc.) Running those services at scale has a cost associated. Number acquisitions for both service and DDIs, the rental of these from carriers also carry a cost. The use of the PSTN carries a cost too. These costs have been wrapped up into what you see as a PSTN Calling Plan today.

But cost is a major decision driver and anything we can do to reduce overhead is worth talking about! A lot of companies look at PSTN Calling licences and figure “my staff need to make international calls, so I must by an international calling plan for each of them”. This, if true would give the staff a liberal service, but it would not be financially viable for the company to consider.

Instead, perhaps a subset of users are heavy international callers and it is cheaper to purchased inclusive international calls for these. Perhaps another subset of users are occasional international callers, and the rest are domestic callers. It is the subset of the occasional international callers that you focus on to investigate other ways of providing this calling service without the cost of it upfront. When profiling these users out, there will be a lot of maths and algebra involved to figure out the optimum strategy, but for those where it would be cheaper to use Pay As You Go international calling rather than planned calling you can adopt consumption billing for these users…

So What is Consumption Billing?

Consumption Billing is a licence of sorts applied to your tenant by default once you have purchased Cloud PBX and / or PSTN Conferencing licences. Unlike all other licences this is a tenant licence, in that is unlimited, but is still required to be assigned to a user. What consumption billing allows you to do is top load your tenant with funds that can be used for “out of plan” calling services. A pre-paid credit card for a better analogy. Unlike other plans, it does not expire / renew on a monthly basis, it is there until the balance reaches £0, at which point you load more funds.

How is Consumption Billing Used?

Lets go back in time a little to PSTN Conferencing. Remember I said that if a hybrid user or a PSTN Conferencing user wanted to make a call out of a conference e.g. to transfer to their cell phone, or dial in a participant on their behalf? These calls need to be paid for. The cost of these calls comes out of Consumption Billing!

Remember the use of Toll-Free numbers for conferencing or other services (Call Queues, OrgAA)? The cost of the inbound call is charged back to Consumption Billing! If your balance is Zero in consumption billing, Toll-Free numbers will not connect when called!

Now onto PSTN Calling and those occasional international callers. Instead of purchasing an international calling plan, you can purchase a domestic plan and use Consumption Billing to fund their international calls. The cost of these calls are priced using the consumption billing rate card (https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/REDTZ9).

There are different rates based on the origin of the caller, the destination of the callee and the service called (landline, mobile, premium).

By default users who are assigned a domestic only calling plan are blocked from making international calls. Therefore, simply setting up Consumption Billing and assigning it to a user will not turn on international calling. Instead you need to enable international calling on the user’s PSTN settings in PowerShell

Set-CsUserPstnSettings –Identity user@domain.com –AllowInternationalCalls $True

So Consumption Billing is used in multiple scenarios over different services, and this begs the question “How much money do I need to load into Consumption Billing?”

In truth the question is rather loaded, because each organisation will have different calling habits and usage. You could spend days through CDR records and Invoices and doing some math calculations with the assistance of the top grads from MIT or you could use the recommended table from Microsoft based on the number of licenced users

Number of Licenced Users One time Funding (initial stake) Renewal Trigger
Less than 250 $1,000 $200
250-500 $1,000 $400
500-1,000 $2,000 $500
1,000-5,000 $3,000 $1,000
5,000-10,000 $5,000 $1,000
10,000-50,000 $10,000 $1,000
50,000-100,000 $15,000 $2,500
100,000-200,000 $20,000 $2,500

After the initial loading of funds, consumption billing can be closely monitored to work out actual spending which can then be used to determine what the reload amount should be.

I hope this helps people understand how the licencing of Cloud PBX and its features work.

Skype for Business–Can Your Conferencing Servers Cope with Anywhere365?

For the last 6 months I have been delivering a number of global contact centers based on Skype for Business and Anywhere365. The journey has been long and at some points painful, but we have got there and everyone is happy! Along the journey I have learnt a lot, cried a lot and laughed a lot! Now I am going to share with you some information that will help you decide if your Skype for Business deployment can cope with Anywhere365.

Firstly, Anywhere365 is one of only a few native Skype for Business contact centers. Do not get confused between this and contact center vendors who say they integrate with Skype for Business! To help you understand the meaning:

  • NATIVE means that the application uses Skype for Business Server functionality and APIs such as UCMA to build the contact center software. This means that it will use SfB Server components and media to deliver the functionality as well as baked in support of the Skype for Business client application.
  • INTEGRATED usually means that the contact center has an endpoint(s) registered in Skype for Business that takes the call away from the native components into their own system and deliver this back to the agent maybe to the Skype for Business client by itself, maybe a dedicated agent application, or the Skype client with the aid of a plugin.

There are positives and negatives for each, and this post is not about pitching one over the other.

As a result of being a native contact center, Anywhere365 of course leverages a lot of what Skype for Business has to offer in order to create those special contact center communication scenarios. To begin with Anywhere365 hooks into Skype for Business as a trusted application. As a trusted application, it requires trusted application endpoints. These endpoints act as the route in and out of the Anywhere 365 application and Skype for Business.

Another fundamental aspect is that Anywhere365 does not have its own media engine. In other words, it cannot control media paths, transcoding, media establishment etc. It is oblivious to that. Instead Anywhere365 leverages the conferencing service on the Skype for Business Front End Servers to connect the caller to the agent. This means that Anywhere365 is only part of the SIP signaling loop between caller and agent and as a result, requires less server resources that integrated contact centers.

So How Does a Conversation Work?

When a caller places a call to the contact center, they are calling the LineURI that is assigned to the trusted application endpoint attached to the contact center application. At this point all Skype for Business has done is routed the SIP signaling through to Anywhere365. Anywhere365 will accept the SIP INVITE sent to it and then send a signal back to Skype for Business to create a conference. Once the conference is created, Anywhere365 invites the caller to join that conference. The conference is hosted on the front end pool that the Anywhere365 server is paired to by the trusted application pool.

As soon as the caller is placed into the conference, Anwhere365 will play the welcome and queue messages to the caller within the conference. When you look at the logs, you will see that during these messages temporary SIP URIs join the conference to play the messages or hold music and remove themselves when no longer needed. Once the caller is in a position to be connected to an agent, Anywhere365 hunts an agent based on presence (and other parameters) and once an agent has been found they are invited to join the conference that the caller is in.


As you can see, conference performance is of paramount importance to Anywhere365. A well performing AVMCU will create and join the caller to the conference in about half a second when done programmatically. In layman’s terms this is approx. half an ring. If you call an Anywhere365 contact center you hear multiple rings before hearing the first message, or the call being accepted, then more than likely you have a problem with your conferencing service. Similarly if it takes a noticeably long time for messages to play then this could also be related to conferencing service performance issues.

Luckily there are a few things that you can do to eliminate other possibilities:

  1. Assign a conferencing policy to every endpoint you create for your contact center. This includes the main, hunting and other system endpoints you may create. Why? Well Anywhere will use a random endpoint to create the conference. If that endpoint does not have a conferencing policy, then the conference creation can fail, then another endpoint is tried etc. etc. resulting in delays.
  2. The conferencing policy must have the following parameters set; –AllowAnonymousUsersToDialOut $True, –AllowAnonymousParticipantsInMeetings $True, –AllowExternalUsersToRecordMeeting $True (if you want audio recording), –AllowNonEnterpriseVoiceUsersToDialOut $True. If these are not set in the conferencing policy, some random things will happen, usually resulting in performance issues of a varied kind.
  3. Assign each endpoint an appropriate dial plan and voice policy too if you want dial out to work via the contact center.

Performance Baselining

Before installing Anywhere365 and trying to use it, you need to spend some time understanding your environment and your current performance across all components and modalities. Luckily Microsoft have invested a lot of time and effort producing performance benchmarking tools such as Key Health Indicators and the Stress Test Tool (often ignored due to complexity and time). These should absolutely be run to establish a baseline of your current performance as underlying issues could be amplified as soon as contact center workloads are placed on the environment.

Next you need to work out whether your conferencing servers (front ends) can handle the expected number of contact center conferences above the normal number currently consumed. This will help you decide whether you need a separate front end pool for your contact centers or not.

Calculating Conference Availability

To calculate this accurately, you need access to the Skype for Business Monitoring and reporting database. Your aim here is to produce a report containing the number of conferences on the pool over the course of a normal working week. For Example,

Monday 241 740 588
Tuesday 223 767 593
Wednesday 256 815 625
Thursday 267 717 671
Friday 251 827 633

Once you have the numbers, you can establish an average number of conferences for each pool per day. In my example above the averages look like this:

Average Per Day 248 773 622

From the report you also need to establish the average number of conference participants and also the average conference duration in minutes

Average Number of Participants 5 15 5
Average Conference Duration (minutes) 31 35 31

Now you have this base information, you can now start working out your concurrent conferences per pool. We can do this by first calculating the total average talk time per day, (AVERAGE DURATION x AVERAGE NUMBER OF CONFERENCES ON POOL) e.g. For UK that’s 35 x 773 = 27055 minutes.

Next, the working day for the UK is 8 hours, so we can deduct from the reporting that these conferences took part over the course of an 8 hour window. So we need to find out the concurrency. For that we need to find out how many conferences are taking place every second. This can be achieved by (AVERAGE TOTAL TALK TIME PER DAY / WORKING DAY) / 60 In the UK’s example that’s (27055/8) / 60 = 57 concurrent conferences.

Once this has been calculated we are closer to finding out the available capacity. The theoretical maximum number of conferences on a front end pool is calculated by the total number of conferencing users in a pool at any one time. The theoretical limit is 3,996 users in a 12-node pool, or 333 per front end server. But as not everyone has 12-node front end servers and conference consumption is hugely different between companies, the calculation between conferencing users and total number of conferences per pool can vary massively. For instance if your average participation in conferences is 3 users, then you have 111 conferences available per FE. However, if your average participation is 12, then you only have 27 conferences available per server!

In the UK example here, I have an average participation of 15 users per conference. The UK pool is a 3-node FE Pool. So using the logic applied we can calculate that each Front End has a capacity of 22 x 15 person conferences per server, resulting in a pool maximum of 66 x 15 person conferences

Now how are these conferences divided? We can calculate we have 57 simultaneous conferences going on, so (SIMULTANEOUS CONFERENCES / NUMBER OF SERVERS IN POOL) e.g. 57 / 3 = 19 conferences per server

To find the total number of conferencing users per pool you need to multiply the average number of participants by the number of simultaneous conferences taking place (AVERAGE NUMBER OF PARTICIPANTS x NUMBER OF SIMULTANEOUS CONFERENCES) e.g. 15 x 57 = 855 in the UK example

Next, you need to find calculate the distribution of these conference users over the number of servers in the FE pool (NUMBER OF CONFERENCING USERS / NUMBER OF FE SERVERS IN POOL) e.g. 855 / 3 = 285 in the UK example based on a 3-node FE pool. So the UK has 48 conferencing users available per server or 144 available conferencing users in the pool.

So the baseline result for Anywhere 365 conference availability for the UK is as follows:

  • 144 x conferencing users available in the pool
  • 6 x 15 person conferences available in the pool

Calculate the Predicted Anywhere365 Conference Consumption

In this example we are limited by the number of available conferences being 6. However, it is likely that contact center calls are only going to have 3 participants at any one time (caller, agent and system endpoint). So if we multiply the 6 available conferences by 15 (number of users) then we can see that we could have a further 90 x 1 person conferences instead of 6 x 15 person conferences. Divide 90 by 3 and we can subdivide those 6 x 15 person conferences into 30 x 3 person Anywhere365 available conferences.

So now we have a potential upper limit of 30 Anywhere365 conferences available for the UK pool. But we aren’t finished yet!

From the contact center design, you need to know the expected average call duration of inbound and outbound calls combined, for example 4 minutes. On top of that you need to calculate the average hold time and the time required to play messages to the user, because the conference begins on acceptance of the call, not when the agent begins to talk! So the calculation is (AVERAGE TALK TIME+AVERAGE WAIT TIME+AVERAGE SYSTEM TIME) e.g. for the UK pool we estimate in this example 4 minutes of actual talk time, 3 minutes of wait time and 2 minutes of messages (welcome, IVR, busy etc.) i.e. 4+3+2 = 9 minutes

We also need to know how many calls are expected per day across all contact centers deployed on the same Anywhere365 pool. In this example we will assume that there will be 300 calls per day across all UCCs.

So now we can do the same calculations to predict the Anywhere365 conference consumption.

1) Calculate average total conference duration over the course of the day = 300 calls per day * 9  minute duration = 2700 minutes total conference time

2) Calculate the total number of simultaneous Anywhere365 conferences at any time = (2700 / 8)/60 = 6 conferences per second

3) Calculate the total number of conferencing users per simultaneous conference = 6*3 = 18 (subtract 18 from 144 = 126 conferencing users left in the pool)

4) Subtract the number of expected conferences from the available Anywhere365 conferences = 30 – 6 = 24 remaining Anywhere365 conferences in the pool

From this we can summarise that the existing front end pool in the UK can support the expected conference workload without adding capacity or dedicating a conferencing pool to just Anywhere365 workloads. Keep the metric under the potential limit and you should be within optimum performance ranges.

I hope this helps you calculate your capacity when deploying Anywhere365.

Skype for Business–Tabbed Conversations – Undo Always Close all Tabs

If you use tabbed conversations in your Skype client you have the option to close current tab, or to close the tab group



You will probably choose one or the other depending on whether you are leaving for the day or just want to close out one conversation. But you have the option to “Always close all tabs” at the bottom.

Checking this may seem a great idea at the time and may serve you well. But what happens if you don’t want this behaviour anymore? Can it be undone?

Checking Skype options you can see there is an option to enable or disable tabbed conversations


You may think that disabling tabbed conversations and re-enabling will return the settings to their default, but this will not work.

To undo this setting memorisation you need to use the registry.

Open regedit and navigate to the following location


where “X” is your version number (15.0 for 2013, or 16.0 for 2016)

Edit the DWORD DontShowCWCloseTabQuery from 1 to 0


Now next time you try and close the tab conversation group, you will be prompted for the closure type again!

No Ringback Heard by Caller – Skype for Business & Audiocodes

This problem presented itself at one of my customers a couple of weeks ago. I thought it was an interesting case that I should share this incase you find yourself in a similar situation. The problem started withe an e-mail to me from a current client saying “Please can you help? When someone calls our main office line they don’t hear the phone ring”. To set the scene this means that when the Caller places a call to a number, they don’t hear the ringing tone in their ear. This has a few names, but for consistency with telephony naming, we will call this ringback.

A few more pointed questions later, I determined that when the Caller (Calling Party) placed the call, the Callee (Called Party) recieved ringback and when answered, the media was established and the called party could have a conversation with the calling party. This could get a bit confusing so perhaps this simple diagram will help


Skype for Business Top Tip – Making Life Easy with(out) ADSI Edit

Have you ever been in that situation where you need to make a change to an AD attribute of a Lync / Skype for Business contact object, or RGS object, or any object other than a standard user? Consider the scenario where you want to hide Application Contacts from the user’s address book. These contacts may be Response Groups, or Trusted Application Endpoints. If you read the massively useful blog posts that guide you through how to do this then you’ll quickly realise you have to immerse yourself in ADSI Edit.

One of the biggest problems with ADSIEdit is that although it is incredibly powerful, it is also incredibly unfriendly to admins. Look at your Application Contacts object for instance and you’ll see a massive list of object guids and you will think “how the <expleative of your choice> am I supposed to find the object I need to edit in this list!”.


%d bloggers like this: