Tag Archives: Skype for Business

Skype for Business Cloud Connector

Cloud connector is a unique product from Microsoft which can leverage your existing telephony investment and provide advanced PBX capabilities by using Skype for Business Online and Cloud PBX. SfB cloud connector is an option for those customers who are not using Lync Server 2013 or Skype for Business Server 2015 on-premises infrastructure. Cloud Connector is nothing but a set of VMs which can be deployed on-premises to connect Cloud PBX to implement on-premises PSTN connectivity.

Cloud connector edition deploys a set of VMs which contain a minimal Skype for Business server topology. Each Cloud Connector contains following VMs:

  • Edge Component
  • Mediation Component
  • Central Management Store (CMS)
  • Domain Controller

While planning for Cloud Connector make sure below you considered below points:

  • You should have Office 365 tenant that includes Cloud PBX.
  • You should have existing supported PBX setup running on-premises.
  • All the user will be homed online.
  • You don’t need Skype for Business On-premises deployment but you need virtualized infra to deploy cloud connector. You can’t co-exist cloud connector with on-premises Lync Server 2013 / Skype for Business Server 2015.
  • Cloud Connector is available worldwide.
  • If you want to provide dial-in conferencing to users hosted on Cloud Connector, you can purchase PSTN conferencing from Microsoft or from audio conferencing provider (ACP) partners.


If you have existing Lync Server 2013 / Skype for Business Server 2015 on-premises deployment with telephony setup, then you opt for different options except cloud connector.

Plan your Cloud PBX solution in Skype for Business 2015 or Lync Server 2013

Plan Cloud PBX with on-premises PSTN connectivity in Skype for Business Server 2015 or Lync Server 2013

Skype for Business Cloud PBX

Skype for Business has opened a new era of real time communication with Cloud PBX and Cloud Connector. There are many vendors exist in the market who provide Voice and Video as a service but now with Skype for Business Server, organizations and consumers both will get a new style of collaboration. Skype for Business is an only application which can be fully integrated with other (Microsoft) messaging & collaboration products either on-premises, cloud or in hybrid environment. By using Office Servers and Services (Exchange, Skype for Business, SharePoint & Office 365 etc.), any size of organization can take a full benefit of advanced unified communication and collaboration.

What do you think about Cloud PBX?

Many of us will think about Private Branch Exchange which exist in Microsoft Cloud so that O365 users can make VOIP and PSTN calls. You are correct to some extent, let me explain it.

Cloud PBX is a technology which enables PBX capabilities in the Office 365 cloud which offers Voice over IP within your organization and call control functionalities such as placing, receiving, transferring, muting and unmuting calls etc. With all these functionalities any organization can save opex which occurs in long distance calls. Users can make and receive calls from multiple devices such as desktop/laptop with headset, Lync/SfB phone and mobile device etc. These functionalities could be part of native cloud deployment or in a hybrid environment. Cloud PBX doesn’t mean, users will get PSTN calling services. PSTN calling service is add-on which can be taken on top of Cloud PBX. Below diagram illustrate high level architecture of On-premises, Cloud and Hybrid environment.


Enterprise voice calls can be implemented in two different ways with Cloud PBX:

  1. Organizations can opt for Microsoft PSTN Calling Services.
  2. Organization can integrate Microsoft Cloud PBX with on-premises PSTN infrastructure using Cloud Connector.

Office 365 provides simplify Tenant console for everything including PSTN calling, messaging, collaboration and so on.

Skype for Business online E5 plans cover Cloud PBX while PSTN calling can be taken as an add-on service.

#Skype4B : Install cumulative updates on Skype for Business Part III

This is a continuation of my preceding blog post Install cumulative updates on Skype for Business Part II and focus on backend database updates. In part II of this blog series we updated all the Skype for Business servers. Now, In this post will update backend databases and Central Management Store.

First you have to make sure your all the databases are Principal on Primary Server.

When I cross checked my Back End server, I found locslog is not principal on primary server.

Now run Invoke-CsDatabaseFailover –PoolFqdn <FE Pool Fqdn> -NewPrincipal Primary –DatabaseType <Database type>

Note: Database type will be User, Application, Archiving and Monitoring whichever are applicable in your case.

Now check the database again and make sure all the databases are on Primary and Synchronized otherwise troubleshoot.

Run Install-CsDatabase –ConfigurationDatabases –SqlServerFqdn <BE Fqdn> -Verbose

(In my case, BE databases, Archiving and Monitoring are collocated)

Now update the Persistent Chat database if applicable.

Install-CsDatabase –ConfiguartionDatabases –SqlServerFqdn <PChat BE Fqdn> -Verbose

Update all the Standard Edition and Enterprise Edition FE pools/servers, in my case I have 2 SE server and 1 EE FE pool.

Once you are done with all the SfB servers.

Update Central Management Server.

Install-CsDatabase –CentralManagementDatabase –SqlServerFqdn <CMS Fqdn> -SqlInstance <Instance name> -Verbose

Update topology by running Enable-CsTopology

Run Bootstrapper.exe in all the SfB servers.

I hope this document helped you J

#Skype4B : Install cumulative updates on Skype for Business Part II

This post is a continuation of my preceding post which describes Lync/SfB CU installation process. In this part, I’ll follow the steps which are mentioned in my preceding post and will update my SfB Enterprise Edition pool.

To begin with the CU installation process, download SfB cumulative update and copy it to all the SfB servers.

Open SfB management shell on one of the FE server.

Run Get-CsPoolUpgradeReadinessState to verify the pool readiness state. State should be Ready for the pool and IsReadyForUpgarde should be True for all the upgrade domains with in the same pool.

Run Invoke-CsComputerFailover -NoStop -ComputerName <Computer.FQDN> to failing over the FE server which needs to be updated.

The above cmdlet will disable all the SfB services.

Now, stop all the services by running Stop-CsWindowsService -Graceful

Cross verify the services state through services.msc

Note: Run SkypeServerUpdateInstaller.exe, it will verify all the SfB services state if services are running it will show you all the services which are running or in paused state. Stop all the services and run again.

Once everything is fine, update installer will come up and you can click on Install Update tab to start the installation.

Command prompt will show you the progress.

After successful installation server will reboot.

After reboot you can verify the services, you will find all the services are still in disabled state.

Now, you need to run Invoke-CsComputerFailback -ComputerName <Computer.FQDN> to failback the computer.

Once failback will complete, you can see the message “Machine <FE.fqdn> successfully failed back.

And you can verify all the services.

Now, follow the same process for all the SfB servers except Back End database servers.

Part III of this post will cover the Back End and CMS update process.

#Skype4B : Install cumulative updates on Skype for Business Part I

To update existing system or technology is a continual process in Information Technology. It is applicable in all circumstances either personal devices or business infrastructure.

In this blogpost, I’ll cover the step by step process to update Skype for Business server infrastructure. To make this process simple, Lets divide this process in three phases.

  • Planning
  • Execution
  • Verification

Part I of this blogpost will describe the planning phase while Part II with cover the execution and verification.

Your existing SfB infra may have simple topology or complex topology. When I say simple topology; it means your SfB infra has single site or two site with site resiliency configuration while complex topology means you have multiple sites with different versions and editions of SfB.

Though steps are common for all kind of topologies but sequence may change based on the configuration. Below are the steps in detail which you need to perform at the time of upgrade.

  • Download the latest cumulative updates. If Lync Server 2013 still exist in your topology you can download the CU here.
  • Verify the upgrade readiness state of your SfB pool.

Run Get-CsPoolUpgradeReadinessState on Standard Edition Server or Front End Server in Enterprise Edition to verify the readiness state.

In the result you can get three different values. In Enterprise Edition if State is Ready and IsReadyForUpgrade is True under UpgradeDomains for the same upgrade domain then you are good to go otherwise try to resolve the issue if State is Busy or InsufficientActiveFrontEnds. While in Standard Edition you have to make sure State is not Busy and IsReadyForUpgrade is True under UpgradeDomains for the same upgrade domain.

  • Install the CU on each Front End, Mediation, Director, Persistent Chat and VIS.

    First failover the computer by running Invoke-CsComputerFailover -NoStop -ComputerName <Computer.FQDN> in Enterprise Edition pool and then stop the services gracefully by running Stop-CsWindowsService –Graceful. If you have Lync 2013 servers, SfB Standard Edition or updating SfB servers in scheduled downtime then you can run Stop-CsWindowsService –Graceful to stop the services gracefully.

Run SkypeServerUpdateInstaller.exe or LyncServerUpdateInstaller.exe to install all the updates based on the version.

Run Invoke-CsComputerFailback -ComputerName <Computer.FQDN> for failback of each FE server after update in SfB Enterprise Edition pool.

Note: Follow the same process for each upgrade domains until all upgrade domains in the pool are updated.

  • Update the Back End servers.

In this step update all the Back End servers which are associated with the updated Standard Edition or Enterprise Edition Front End pool.

Standard Edition:

Install-CsDatabase -ConfiguredDatabases –SqlServerFqdn <SE.FQDN> -Verbose

Enterprise Edition:

If you are using Enterprise Edition you can have three different configuration for Back End databases. Make sure Primary Server is Principal for all the databases if you are using SQL Mirror for the Back End database. Run Invoke-CsDatabaseFailover -NewPrincipal and verify Primary Server is Principal for all the databases. Once you have confirmed, run the following cmdlets based on your database configuration.

  1. All databases including Archiving, Monitoring and Persistent Chat on the same server.

    Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn <FEBE.FQDN> -ExcludeCollocatedStores -Verbose

    Install-CsDatabase -DatabaseType PersistentChat -SqlServerFqdn <PChatBE.FQDN> -SqlInstanceName <DBInstance> -Verbose

  2. Only Archiving and Monitoring databases are collocated with FE Back End database.

    Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn <FEBE.FQDN> -Verbose

  3. Archiving, Monitoring and Persistent Chat databases are not collocated with FE Back End server.

    Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn <FEBE.FQDN> -Verbose

    Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn <SQLServer.FQDN> -Verbose

Note: Specify SQL server fqdn in all the cmdlets if you are not using default instance.

  • Update the Central Management Store.

Upgrade the Central Management store by running Install-CsDatabase -CentralManagementDatabase -SqlServerFqdn <CMS.FQDN> -SqlInstanceName <DBInstanceName> -Verbose

Note: All the existing FE pools and BE servers have been updated successfully before running this cmdlet. If you have coexistent environment with Lync 2013 or Lync 2010 don’t run this command. For more information contact Microsoft or refer TechNet articles.

  • Enable Mobility.

Run Enable-Topology.

  • Run the bootstrapper.exe on all the FEs, Mediations and Directors on which the web components are installed and updated.

In Part II of this blog post, I’ll cover all the steps which are required for execution and verification process.

#Skype4B : Verify active directory schema version for Lync/SfB

Active Directory is a backbone for Microsoft enterprise applications such as Exchange / Lync. If you are deploying these enterprise applications either in production or test environment, first you have to prepare active directory schema, forest and domain. In this Active Directory preparation process, schema comes first. Once you are done with planning processes and about to start the installation process, you have to begin with schema preparation. Let’s assume you have prepared your active directory schema for SfB installation either in greenfield or brownfield environment.

Now, How will you confirm that your ad has been prepared successfully?

The best way is to go to the schema partition under ADSI edit and look for the upper range value of ms-RTC-SIP-Schemaversion.

If you find the values listed below then you can assure that your schema has been prepared successfully for the respective version of Lync/SfB.

LCS2005 à 1006

OCS2007R1 à 1007

OCS2007R2 à 1008

Lync2010 à 1100

Lync 2013 à 1150

Skype for Business 2015 à 1150

To verify from the adsiedit is a best method, otherwise you can use Lync/SfB management shell to verify the current state of schema version but it is not useful because it just shows SCHEMA_VERSION_STATE_CURRENT

#Skype4B – Hybrid deployment comparison with on premise and online (O365)

In today’s disruptive market Hybrid deployment is a key for any kind of IT infrastructure deployment. Microsoft provides Infrastructure as a service (IaaS), Platform as a service (PaaS) and Software as a service (SaaS) as their cloud offerings. O365 provides SaaS based offerings while Azure provides IaaS and PaaS. O365 offerings provide Exchange Online, Skype for Business Online and SharePoint online. If I talk about wave 15 products such as Exchange 2013, Lync 2013 and SharePoint 2013, I believe you can use full set of features if you have on premise deployment while all these products were tightly integrated with O365.

As we all know, Microsoft is moving and focusing towards mobile-first and cloud-first strategy. Therefore we can see more features are coming for online services and while few of these are not available for on premise deployment. If I discuss about Skype for Business Server 2015 deployment, as of now you can get all the features in on premise deployment except “Broadcast meeting” and “Cloud conferencing recording”. Below is the table which shows high level difference between on premise, online and hybrid deployment. (Courtesy: Microsoft)

As you can see in the above table, hybrid is the only option to get all the features. This is not only for Skype for Business, same thing you can see for Exchange and SharePoint.

Therefore, in short Hybrid is the only way to go.

#Skype4B – Configure Disaster Recovery: Standard Edition

Lync Server 2013 and Skype for Business Server 2015 provides pool pairing option to configure disaster recovery. Pool pairing option can be configured between two different Lync/Skype4B sites. In paired pool configuration, you can have both sites active but make sure maximum number of users should be based on single pool so that at the time of site failure another site can accommodate all the user without any performance issue. There are few important considerations which you have to make sure before planning of your disaster recovery setup.

  1. You can configure pool pairing either between two identical Standard Edition Server or between two Enterprise Edition Front End Server pools in different sites.
  2. Both the sites should have either physical server deployment or virtual server deployment. Mixed configuration is not supported.
  3. Pool pairing allows backup pool configuration only between two sites and vice versa. You can’t configure backup pool between three sites, it means Site1 and Site2 can be configured as backup pool for each other but you can’t associate backup pool for site1 with site2 and site2 with site3.
  4. Paired pool must be running on the same operating system.

This blogpost illustrate step by step pool paring configuration for Standard Edition server. In my lab setup, I have two Skype for Business Server sites.


UC LAB has one standard edition pool “se01.uc.lab” and UC LAB DR has on standard edition pool “se02.uc.lab”.

To configure pool pairing, first make sure your standard edition servers are up and running in healthy state.

Go to the topology builder and “Download Topology from existing deployment”.

Expand “Skype for Business Server”

Go to the first site and select Standard Edition Server.

Go to the properties of first standard edition server.

Go to the Resiliency under properties.

Enable “Associate backup pool” and select second standard edition server. Enable “Automatic failover and failback for Voice”. 30 Sec is minimum time for both the options.

Verify the configuration.

Now, you can publish the topology.

Go to the secondary server and verify the configuration.

You can see, setup has configured the backup pool for both the sites.

To cross verify the configuration you can use Skype for Business management shell.

Once you have done with the topology configuration part, Open Skype for Business Deployment Wizard and run “Install or Update Skype for Business Server System”

Run step 2 “Setup or Remove Skype for Business Server Components”

Setup will install backup service

Once you are done with the installation start backup service.

Follow the same deployment wizard process for second server.

Disaster recovery site has been configured successfully for Standard Edition Server.

#Skype4B – Edge Pool Deployment Part IV

Skype for Business Server Edge Pool deployment has four parts to cover end to end deployment process. See Part I, Part II, Part III and Part IV for step by step process.

Part IV of Skype for Business Server Edge Pool deployment focus on certificates. Once you are done with Edge server installation you can request a certificate. Edge server need two different types of certificates one for internal and another for external. For internal certificate you can use internal CA while for external certificate you can generate the request and send it to your external CA to get the public certificate. Follow the step by step process to request and assign the certificates:

Select “Edge internal” and click on “Request”

Select offline certificate request and click on Next

Browse to location where you want to store the certificate request

Click on Next

Enter friendly name and select “Mark the certificate’s private key as exportable”

Fill the Organization Information

Fill the Geographical Information

Click on Next

Add all the Edge servers FQDN which are going to be part of this pool

Review the summary and click on Next

Once completed successfully, click on Next

Click on finish to generate the CSR

As you have request CSR for internal certificate, copy the *.req file and go to the internal CA to request the internal certificate.

Access your ADCS through web and click on “Request a certificate”

Select “advanced certificate request”

Select “Submit a certificate request …… PKCS#7 file”

Copy and paste the *.req file content here and select “Web Server” as a certificate template

Select “Base 64 encoded” and download both the files

Install the root certificate on your Edge server, you may run “Download certificate chain” to install the root certificate.

Install only root certificate form “certificate chain” and store it to “Local Computer” under “Trusted Root Certification Authorities”

If you don’t install root certificate then you can face below error while assigning certificate

Once done with root certificate installation, go to the Certificate Wizard and click on “Import Certificate”

Select the *.cer file and click on next

Click on Next to import the certificate

Once completed click on finish

Now, select “Edge internal” and click on “Assign”

Click on Next

Select Certificate and click on Next

Review the summary and click on Next

Once completed click on Finish.

Once Certificate is assigned to “Edge internal”, you can select the “External Edge certificate…” and click on “Request”

Select “offline certificate request” and click on Next

Browse to location to save the certificate request file

Click on Next

Enter “Friendly name” and make sure “Mark the certificate’s private key as exportable” is being selected

Enter your Organization Information

Enter Geographical Information

Click on Next

Select SIP domains and click on Next

Enter alternative SANs if you have any (For Example: If you want to use the same certificate for reverse proxy as well add same names such as lyncdiscover.domain.com, meet.domain.com, externalwebservices.domain.com etc.)

Once certificate request has been completed successfully, click on Next

Click on Finish to generate the CSR

Sent the *.req file to you Public CA vendor and get the certificate. Once you receive the certificate then Import and assign the certificate.

Once certificate part is done, start the Edge server services

Open Skype for Business Server Management Shell and run “Start-CsWindowsService”

Enjoy your Edge services J

Make sure you have public DNS records in place for external users.

#Skype4B – Edge Pool Deployment Part III

Skype for Business Server Edge Pool deployment has four parts to cover end to end deployment process. See Part I, Part II, Part III and Part IV for step by step process.

This post is a continuation of my preceding post #Skype4B – Edge Pool Deployment Part II and describes the step by step installation of Edge Server.

Log on one of the Edge Server with administrative rights.

Open PowerShell and add following features.

Add-WindowsFeature NET-Framework-Core, Windows-Identity-Foundation, NET-WCF-HTTP-Activation45, Web-Asp-Net45 -Source D:\sources\sxs

Run windows update (KB2982006).

Install Silverlight.

Insert Skype for Business Server 2015 media and run setup.exe.

Accept License Agreement.

Run “Install or Update Skype for Business Server System” from deployment Wizard.

Run “Install Local Configuration Store”

Navigate to the exported edge configuration and click on Next.

Run “Setup or Remove Skype for Business Server Components”

Once completed step1 and step2 successfully, request for the certificates.

Request Edge internal and external certificate separately. Internal certificate can be created from internal CA while external certificate request can be sent to Public CA to generate the certificate.

Once you have created internal and external certificates, Import the certificates and assign it.

I hope you enjoyed it J

Skype for Business Server Edge Pool deployment has four parts to cover end to end deployment process. See Part I, Part II, Part III and Part IV for step by step process.