Are we done so soon? Well, for me this seemed all too quick but it looks like we’re in the last phase in your migration to Skype for Business Server 2019! If you are joining us for the first time, I highly recommend you check our Phases 1-7 here, as this article won’t make much sense without it
You’ve made it to the last phase! Phase 8 will discuss how to decommission your legacy Lync Server 2013 or Skype for Business Server 2015 pools. This will consist of updating DNS entries, moving the Content Management Server, decommissioning pools, and deactivating and removing servers and pools from a legacy deployment. Please note though, that not all of the procedures listed in this section are required. If you are interested in extensive documentation on decommissioning a deployment, please refer to the documentation here. Otherwise, just hang tight and I’ll give you the abbreviated version.
Important: For information on migrating and upgrading Microsoft Unified Communications Managed API (UCMA) applications, before decommissioning your legacy environment, see UCMA applications: Coexistence, migration, and upgrade scenarios.
Updating DNS Records
To successfully complete this procedure, you should be logged on to the server or domain as a member of the Domain Admins group or a member of the DnsAdmins group. Below are the steps that should be taken to update your DNS records after you have finished your migration to Skype for Business Server 2019.
Verifying that the FQDN of the Front End pool or Standard Edition server can be resolved
Preparing an Enterprise Edition Front End pool
Install-CsDatabase -CentralManagementDatabase -SQLServerFQDN <FQDN of your SQL Server> -SQLInstanceName <name of instance>
Preparing a Standard Edition Front End Server
On the Skype for Business Server 2019 Standard Edition Front End Server where you want to relocate the Central Management Server, log on to the computer where the Skype for Business Server Management Shell is installed as a member of the RTCUniversalServerAdmins group.
Install-CsDatabase -CentralManagementDatabase -SQLServerFQDN <FQDN of your Standard Edition Server> -SQLInstanceName <name of instance - RTC by default>
Note: The initial installation may take some time with no visible updates to the command output summary screen. This is due to the installation of SQL Server Express. If you need to monitor the installation of the database, use Task Manager to monitor the setup.
Moving the legacy installs Central Management Server to Skype for Business Server 2019
On the Skype for Business Server 2019 server that will be the Central Management Server, log on to the computer where the Skype for Business Server Management Shell is installed as a member of the RTCUniversalServerAdmins group. You must also have the SQL Server database administrator user rights and permissions.
Open Skype for Business Server Management Shell.
In the Skype for Business Server Management Shell, type:
Enable-CsTopology
CAUTION: If Enable-CsTopology
is not successful, resolve the problem preventing the command from completing before continuing. If Enable-CsTopology is not successful, the move will fail and it may leave your topology in a state where there is no Central Management store.
On the Skype for Business Server 2019 Front End Server or Front End pool, in the Skype for Business Server Management Shell, type:
Move-CsManagementServer
Skype for Business Server Management Shell displays the servers, file stores, database stores, and the service connection points of the Current State and the Proposed State. Read the information carefully and confirm that this is the intended source and destination. Type Y to continue, or N to stop the move.
Get-CsManagementStoreReplicationStatus
Note: The replication may take some time to update all current replicas.
Removing legacy install Central Management store files after a move
On the legacy install server, log on to the computer where the Skype for Business Server Management Shell is installed as a member of the RTCUniversalServerAdmins group. You must also have the SQL Server database administrator user rights and permissions.
CAUTION: Do not proceed with the removal of the previous database files until replication is complete and is stable. If you remove the files prior to completing replication, you will disrupt the replication process and leave the newly moved Central Management Server in an unknown state. Use the cmdlet Get-CsManagementStoreReplicationStatus to confirm the replication status.
Uninstall-CsDatabase -CentralManagementDatabase -SqlServerFqdn <FQDN of SQL Server> -SqlInstanceName <Name of source server>
For example:
Uninstall-CsDatabase -CentralManagementDatabase -SqlServerFqdn sql.contoso.net -SqlInstanceName rtc
Where the <FQDN of SQL Server> is either the legacy install Back End Server in an Enterprise Edition deployment or the FQDN of the Standard Edition server.
Moving Conference Directories
Open the Skype for Business Server Management Shell.
Get-CsConferenceDirectory
The preceding command returns all the conference directories in your organization. Because of that, you might want to limit the results to the pool being decommissioned. For example, if you are decommissioning the pool with the fully qualified domain name (FQDN) pool01.contoso.net, use this command to limit the returned data to conference directories from that pool:
Get-CsConferenceDirectory | Where-Object {$_.ServiceID -match "pool01.contoso.net"}
That command returns only the conference directories where the ServiceID property contains the FQDN pool01.contoso.net.
Move-CsConferenceDirectory -Identity <Numeric identity of conference directory> -TargetPool <FQDN of pool where ownership is to be transitioned>
For example, to move conference directory 3, use this command, specifying a Skype for Business Server 2019 pool as the TargetPool:
Move-CsConferenceDirectory -Identity 3 -TargetPool "pool02.contoso.net"
If you want to move all the conference directories on a pool, use a command similar to the following:
Get-CsConferenceDirectory | Where-Object {$_.ServiceID -match "pool01.contoso.net"} | Move-CsConferenceDirectory -TargetPool "pool02.contoso.net"
Download Uninstalling Microsoft legacy and Removing Server Roles for comprehensive, step-by-step instructions on decommissioning legacy pools.
When moving conference directories, you might encounter the following error:
WARNING: Move operation failed for conference directory with ID "5". Cannot perform a rollback because data migration might have already started. Retry the operation.
WARNING: Before using the -Force parameter, ensure that you have exported the conference directory data using DBImpExp.exe and imported the data on the target pool. Refer to the DBImpExp-Readme.htm file for more information.
Move-CsConferenceDirectory : Unable to cast COM object of type 'System._ComObject' to interface type 'Microsoft.Rtc.Interop.User.IRtcConfDirManagement'.
This operation failed because the QueryInterface call on the COM component for the interface with SID '{4262B886-503F-4BEA-868C-04E8DF562CEB}' failed due to the following error: The specified module could not be found.
This error typically occurs when the Skype for Business Server Management Shell requires an updated set of Active Directory permissions in order to complete a task. To resolve the problem, close the current instance of the Management Shell, then open a new instance of the shell and re-run the command to move the conference directory.
Removing the Archiving server association
To remove an Archiving Server, you need to change or clear the dependency on the associated Front End pool, Front End Server, Survivable Branch Appliance, and Survivable Branch Server. You edit the properties of the Front End pool, Front End Server, Survivable Branch Appliance, and Survivable Branch Server to remove the dependency. After you clear the dependency and delete the server in Topology Builder, you are notified that the associated database store object in Topology Builder will also be deleted.
On the Skype for Business Server 2019 Front End Server, open Topology Builder.
Note: Survivable Branch Appliances in the user interface applies to both Survivable Branch Server and Survivable Branch Appliance.
Removing the Monitoring server association
To remove the Monitoring Server, you need to change or clear the dependency on the associated Front End pool, Front End Server, Survivable Branch Appliance, and Survivable Branch Server. You edit the properties of the Front End pool, Front End Server, Survivable Branch Appliance, and Survivable Branch Server to remove the dependency. After you clear the dependency and delete the server in Topology Builder, you are notified that the associated database store object in Topology Builder will also be deleted.
On the Skype for Business Server 2019 Front End Server, open Topology Builder.
Note: Survivable Branch Appliances in the user interface applies to both Survivable Branch Server and Survivable Branch Appliance.
Removing the Enterprise Edition Front End Pool or Standard Edition Front End Server
The procedures outlined in this section are designed to guide you through the process of removing an Enterprise Edition Front End pool or a Standard Edition Front End Server. After migrating to Skype for Business Server 2019, this is one of the first steps in decommissioning your legacy environment.
Reset Call Admission Control
Prevent sessions from services
Prevent new sessions for a specific service
Stop/Start legacy services
Stop/Start a specific service
Removing a Front End Server from a pool
The Front End Server cannot exist as a stand-alone computer. It must be defined as a Front End pool, even if there is only a single computer in the pool.
This topic guides you through the process of removing an individual Front End Server from an existing Front End pool. If the Front End Server is the last server in the pool or if you are removing the pool completely, see Remove Front End pool or Standard Edition server. There is no need to remove the individual Front End Servers before you remove the Front End pool. When you remove the pool, you remove each Front End Server.
Removing the entire Front End Pool or Standard Edition Server
This article guides you through the process of removing a Front End pool or a Standard Edition Front End Server. When you remove a Front End pool, you remove each Front End Server that belongs to the pool as a part of the pool removal process. When you remove a Standard Edition Front End Server, you must remove the SQL Store definition from Topology Builder.
To remove a Front End Server pool
To remove a Standard Edition Front End server
Open Topology Builder.
Important: You must remove the definition of the collocated SQL Server databases from the Standard Edition Front End Server.
You’re done! This concludes the series of migrating to Skype for Business Server 2019. I hope you have found this series helpful and check back to my blog regularly as I like to post about anything new in the Skype for Business and Microsoft Teams world! For the Microsoft documentation that I referenced throughout this series please see the docs articles here. I did my best to cut out the extraneous information however, I have found that Microsoft is very clear-cut with their instructions. Nevertheless, I look forward to seeing you in the next blog!
]]>Welcome back! Or if you’re new, then welcome! In yesterday’s blog we discussed Phase 6 which included moving from a pilot to a production deployment. Today we work on sealing the deal by going over our post-migration tasks. The list of tasks is pretty extensive but we’ll be sure to cover each one in detail so you don’t feel stranded. Also, if you haven’t checked out Phases 1-6, you find them here.
Congrats! You’re in the home stretch! Now that the migration to Skype for Business Server 2019 is complete, we’ll just need to discuss the post-migration tasks that you will need to perform. This list may seem quite extensive but it crucial to cover all of your bases to ensure a smooth transition from the legacy system to your new one. The post-migration list includes:
Migrate existing meetings and meeting content
Migrate dial-in access numbers
Important: You must perform this procedure prior to decommissioning the legacy install pool.
Identifying and moving dial-in access numbers
Move-CsApplicationEndpoint -Identity <SIP URI of the access number to be moved> -Target <FQDN of the pool to which the access number is moving>
Note: When all dial-in access numbers point to the Skype for Business Server 2019 pool, you can then decommission the legacy install pool.
Verifying the dial-in access number migration using Skype for Business Server Control Panel
Verifying the dial-in access number migration using Skype for Business Server management shell
Get-CsDialInConferencingAccessNumber -Filter {Pool -eq "<FQDN of the pool to which the access number is moved>"}
Migrate Call Park application settings
Reconfiguring the Call Park Service Settings
Note: If your Skype for Business Server 2019 Call Park application settings are identical to the legacy settings, you can skip this step. If Call Park application settings are different for the Skype for Business Server 2019 and legacy environments, use the cmdlet below as a template to update those changes.
To reassign all Call Park orbit ranges from the legacy pool to the Skype for Business Server 2019 pool, you can use either the Skype for Business Server Control Panel or the Skype for Business Server Management Shell.
Reassigning all Call Park Orbit Ranges using Skype for Business Control Panel
Reassigning all Call Park Orbit Ranges using Skype for Business Management Shell
Get-CsCallParkOrbit
This cmdlet lists all of the Call Park orbit ranges in the deployment. All Call Park orbits that have the CallParkServiceId and CallParkServerFqdnparameters set as the legacy pool must be reassigned.
To reassign the legacy Call Park orbit ranges to the Skype for Business Server 2019 pool, at the command line, type the following:
Set-CsCallParkOrbit -Identity "<Call Park Orbit Identity>" -CallParkService "service:ApplicationServer:<Skype for Business Server 2019 Pool FQDN>"
After reassigning all Call Park orbit ranges to the Skype for Business Server 2019 pool, the migration process for the Call Park application will be completed and the Skype for Business Server 2019 pool will handle all future Call Park requests.
Migrating response groups
Note: Although you can migrate response groups before you move all users to the Skype for Business Server 2019 pool, we recommend that you move all users first. In particular, users who are response group agents will not have full functionality of new features until they are moved to the Skype for Business Server 2019 pool. Additionally, you can create new Skype for Business Server 2019 response groups in the Skype for Business Server 2019 pool before you migrate your legacy response groups.
To migrate response groups from a legacy pool to the Skype for Business Server 2019, you run the Move-CsRgsConfiguration cmdlet.
Important: The Response Group migration cmdlet moves the Response Group configuration for the entire pool. You cannot select specific groups, queues, or workflows to migrate.
After you migrate the response groups, you need to use Skype for Business Server Control Panel or Skype for Business Server Management Shell cmdlets to verify that all agent groups, queues, and workflows moved successfully.
When you migrate response groups, the legacy response groups are not removed. When you manage response groups after migration by using either Skype for Business Server Control Panel or Skype for Business Server Management Shell, you can see both the legacy response groups and the Skype for Business Server 2019 response groups. You should apply updates only to the Skype for Business Server 2019 response groups. The legacy response groups are retained only for rollback purposes.
CAUTION: After the migration has been completed and the new response groups have been created, the Skype for Business Server Control Panel and the Skype for Business Server Management Shell will display the legacy and Skype for Business Server 2019 versions of each response group. Do not use Skype for Business Server Control Panel or Skype for Business Server Management Shell to remove the legacy response groups. If you do remove one, the corresponding response group that was created during migration will stop working. The legacy response groups will be removed when you decommission the legacy pool.
Important: We recommend that you do not remove any data from your previous deployment until you decommission the pool. In addition, we strongly recommend that you export response groups immediately after you migrate. If a legacy response group should get removed, you can then restore your response groups from the backup to get Skype for Business Server 2019 response groups running again.
Skype for Business Server 2019 introduces a new Response Group feature called Workflow Type. Workflow Type can be Managed or Unmanaged. All response groups are migrated with Workflow Type set to Unmanaged and with an empty Manager list.
When you run the Move-CsRgsConfiguration cmdlet, the agent groups, queues, workflows, and audio files remain in the legacy pool for rollback purposes. If you do need to roll back to the legacy pool, however, you need to run the Move-CsApplicationEndpoint cmdlet to move contact objects back to the legacy pool.
The following procedure for migrating Response Group configurations assumes that you have a one-to-one relationship between your legacy pools and the Skype for Business Server 2019 pools. If you plan to consolidate or split up pools during your migration and deployment, you need to plan which legacy pool maps to which Skype for Business Server 2019 pool.
Migrating Response Group configurations
Move-CsRgsConfiguration -Source <source pool FQDN> -Destination <destination pool FQDN>
Move-CsRgsConfiguration -Source skype-old.contoso.net -Destination skype-new.contoso.net
Verifying Response Group migration by using Skype for Business Server Control Panel
Verifying Response Group migration by using Skype for Business Management Shell
Get-Help <cmdlet name> -Detailed
Get-CsRgsAgentGroup
Get-CsRgsQueue
Get-CsRgsWorkflow
Migrating the Address Book
Grouped Address Book Entries
Address Book Normalization Rules
Note: If your organization uses remote call control and you customized Address Book normalization rules, you must perform the procedure in this topic before you can use remote call control. The procedure requires membership in the RTCUniversalServerAdmins group or equivalent rights.
UseNormalizationRules Set to False
Migrating Address Book normalization rules
Find the Company_Phone_Number_Normalization_Rules.txt file in the root of the Address Book shared folder, and copy it to the root of the Address Book shared folder in your Skype for Business Server 2019 pilot pool.
Note: The sample Address Book normalization rules have been installed in your ABS Web component file directory. The path is $installedDriveLetter:\Program Files\Microsoft Skype for Business Server 2019\Web Components\Address Book Files\Files\ Sample_Company_Phone_Number_Normalization_Rules.txt. This file can be copied and renamed as Company_Phone_Number_Normalization_Rules.txt to the address book shared folder’s root directory. For example, the address book shared in $serverX, the path will be similar to: \$serverX \SkypeForBusiness-FileShare\2-WebServices-1\ABFiles.
\s*\(\s*\d\d\d\s*\)\s*\-\s*\d\d\d\s*\-\s*\d\d\d\d
The following string would not cause the normalization rule to fail:
\s*\(?\s*\d\d\d\s*\)?\s*\-?\s*\d\d\d\s*\-?\s*\d\d\d\d
Setting UseNormalizationRules and IgnoreRules to True
Wait for Central Management store replication to occur on all pools.
Configure the meeting join page
When a user clicks a meeting link in a meeting request, the meeting join page detects which client is already installed on the user’s computer. If a client is already installed, that client opens and joins the meeting. If a client is not installed, by default the Web App opens.
You can modify the behavior of the meeting join page if you want to allow users to join meetings. These configuration options have been removed from the Control Panel, but you configure them by using the CsWebServiceConfiguration cmdlet.
Meeting Join Page CsWebServiceConfiguration Parameters
CsWebServiceConfiguration Parameter | Description |
---|---|
ShowJoinUsingLegacyClientLink | If set to True, users joining a meeting by using a client application other than Lync will be given the opportunity to join the meeting. The default value is False. |
ShowAlternateJoinOptionsExpanded | When set to True, alternate options for joining an online conference will automatically be expanded and shown to users. When set to False (the default value), these options will be available, but the user will have to display the list of options for themselves. |
Start the Skype for Business Server 2019 Management Shell: Click Start, click All Programs, click Microsoft Skype for Business Server 2019, and then click Skype for Business Server Management Shell.
Get-CsWebServiceConfiguration
This cmdlet returns the web service configuration settings.
Run the following command, with the parameters set to True or False, depending on your preference (for details about the parameters for this cmdlet, see the Skype for Business Server Management Shell documentation):
Set-CsWebServiceConfiguration -Identity global -ShowJoinUsingLegacyClientLink $True
Removing legacy Archiving and Monitoring servers
Configuring trusted application servers
Important: If you are migrating a trusted application server, you should also update the version of UCMA you are using. If you create a new Trusted Application Pool for Skype for Business Server 2019, you should update UCMA to the version that is included with Skype for Business Server 2019 or the latest version available.
Select Skype for Business Server 2019 as next hop when creating a Trusted application server
Deploy Skype for Business Server clients
For details, see Deploy clients for Skype for Business Server in the Deployment documentation.
Connect an SBA (Survivable Branch Appliance)
Adding a legacy SBA branch site to your topology
Note: A SBC can only be associated with a monitoring store.
10. If you are not using a Survivable Branch Appliance or Server at this site, clear the Open the New Survivable Wizard when this wizard closes check box, and then click Finish.
11. Repeat the previous steps for each branch site you want to add to the topology.
Configuring SCOM monitoring
Instructions for carrying out each of these tasks are provided below.
Apply updates to a server elected to manage the central discovery logic.
Update the central discovery candidate server registry key.
New-Item -Path "HKLM:\Software\Microsoft\Real-Time Communications\Health"
New-Item -Path "HKLM:\Software\Microsoft\Real-Time Communications\Health\CentralDiscoveryCandidate"
Note: Whenever you edit the registry, you may experience an error that the command failed if the registry key already exists. If you experience this, you can safely ignore the error.
Whenever you edit the registry, you may experience an error that the command failed if the registry key already exists. If you experience this, you can safely ignore the error.
Configuring your primary SCOM management server to override the candidate central discovery watcher node.
Migrating Common Area Phones
Common Area Phones are IP phones that most often reside in a shared workspace or common area, like a lobby, kitchen, or factory floor. Common Area Phones do not need to be connected to a computer to provide Skype for Business Server unified communications (UC) functionality. After migrating a deployment to Skype for Business Server 2019, you must also migrate the contact objects associated with the legacy Common Area Phone. Using Skype for Business Server Management Shell, you will first retrieve all contact objects associated with the legacy Common Area Phones, and then move those objects to the Skype for Business Server 2019 pool.
Migrating Common Area Phones
Get-CsCommonAreaPhone -Filter {RegistrarPool -eq "pool01.contoso.net"} | Move-CsCommonAreaPhone -Target pool02.contoso.net
Get-CsCommonAreaPhone -Filter {RegistrarPool -eq "pool02.contoso.net"}
Migrate analog devices
Get-CsAnalogDevice -Filter {RegistrarPool -eq "pool01.contoso.net"} | Move-CsAnalogDevice -Target pool02.contoso.net
Get-CsAnalogDevice -Filter {RegistrarPool -eq "pool02.contoso.net"}
Great job! I know this was a longer blog article, but I wanted to make sure we covered all bases so nothing was missed. On that note though, we’re almost done! In Phase 8, we’ll discuss decommissioning our legacy pools! So you can finally say bye bye to Lync Server 2013 or Skype for Business Server 2015 and brag about how your company is using the latest and greatest that Microsoft has to offer (well besides Teams, but that’s a blog for another day )!
Hello again! Welcome back to Phase 6 of 8 in our migration to Skype for Business Server 2019. Last time we added the Edge Server role to our deployment. In this blog we’ll be making the big move from pilot to production! Don’t be scared though, because we’ll be discussing everything you’ll need to set you up for success! Also, if you haven’t gotten a chance to read through Phases 1-5 I strongly encourage you to check them out here!
Now that we’ve proven we can configure and deploy Skype for Business Server 2019 in a pilot deployment, it is finally time to move things to a production-level deployment. In order to do this, you will be responsible for the following tasks:
After these tasks are completed you will be in the home stretch for your migration to Skype for Business Server 2019, so let’s jump right in!
Configuring federation routes and media traffic
IMPORTANT NOTES:
Removing legacy federation association from Skype for Business Server 2019
Configuring the legacy Edge Server as a non-federating Edge Server
Configuring the certificates on the legacy Edge Server
Changing the previous version’s federation route to use Skype for Business Server 2019 Edge Server
Updating Skype for Business Server 2019 Edge Server federation next hop
Configuring Skype for Business Server 2019 Edge Server outbound media path
Turning on Skype for Business Server 2019 Edge Server federation
Publishing Edge Server configuration changes
Note: You may see the following message: Warning: The topology contains more than one Federated Edge Server. This can occur during migration to a more recent version of the product. In that case, only one Edge Server would be actively used for federation. Verify that the external DNS SRV record points to the correct Edge Server. If you want to deploy multiple federation Edge Server to be active concurrently (that is, not a migration scenario), verify that all federated partners are using Skype for Business Server. Verify that the external DNS SRV record lists all federation enabled Edge Servers. This warning is expected and can be safely ignored.
Configuring the Skype for Business 2019 Edge Server
Note: If you do not have a hardware load balancer, you need to update the DNS A record for federation to resolve to the new Skype for Business Server Access Edge server. To accomplish this with minimal disruption, reduce the TLL value for the external Skype for Business Server Access Edge FQDN so that when DNS is updated to point to the new Skype for Business Server Access Edge, federation and remote access will be updated quickly.
Verify federation and remote access for external users
Users from at least one federated domain, an internal user on Skype for Business Server 2019, and a user on the legacy install. Test instant messaging (IM), presence, audio/video (A/V), and desktop sharing.
Change simple URL’s after migration
After your migration it is important to understand how this will impact your DNS records and certificates for the simple URL’s. For example, if the Skype for Business Server Director is removed from the topology after migration, the simple URL DNS records must be updated to point to one of the Skype for Business Server pools. However, if the legacy Skype for Business Server Director remains in use in the topology, no changes to your simple URLs are required.
Note: Whenever you change a simple URL name, however, you must run Enable-CsComputer on each Director and Front End Server to register the change.
Updating the Meet simple URL
Updating the Admin simple URL
For more information on simple URL’s please see the link here.
Move remaining users to Skype for Business Server 2019
Important: You cannot use the Active Directory Users and Computers snap-in or the legacy administrative tools to move users from your legacy environment to Skype for Business Server 2019.
When moving a user to a Skype for Business Server 2019 pool, the data for the user is moved to the back-end database that is associated with the new pool.
Important: This includes the active meetings created by the legacy user. For example, if a legacy user has configured a my meeting conference, that conference will still be available in the new Skype for Business Server 2019 pool after the user has been moved. The details to access that meeting will still be the same conference URL and conference ID. The only difference is that the conference is now hosted in the Skype for Business Server 2019 pool, and not in the legacy pool.
Note: Homing users on Skype for Business Server 2019 does not require that you deploy upgraded clients at the same time. New functionality will be available to users only when they have upgraded to the new client software.
You did it! You just finished moving your remaining users over to the Skype for Business Server 2019 pool! However, first some quick housekeeping rules before you can celebrate:
Once you have done the tasks above, feel free to crack open a brew (if you’re of age ) and celebrate! I hope you have found this blog helpful, and tune in tomorrow when we discuss our post-migration tasks in Phase 7!
Welcome back for Phase 5! In phase 4 we moved some users over to the pilot pool. Today we’ll be taking things a step further by deploying an Edge Server role in our pilot pool. If you haven’t seen the blog articles on Phases 1-4, you can check them out here! However, if you’ve been on the journey with us since the beginning we can proceed on!
Great job! Now we have some users in our Skype for Business Server 2019 pilot pool! Next, we’ll be adding the Edge Server role to the pilot pool. In this phase we will be configuring and verifying our edge deployment.
Deploy pilot Edge Server
Verify configuration settings
Now that we have deployed the pilot edge server, we must verify the configuration settings. To do this we can run the Get-CsManagementStoreReplicationStatus cmdlet on the internal computer where CMS (Central Management Store) is located, or on a domain joined computer where Skype for Business Server 2019 Core Components (OcsCore.msi) is installed.
Note: Initial results may indicate the status as “False” instead of “True” for replication. If so, run the Invoke-CsManagementStoreReplication cmdlet and allow time for the replication to complete before running the Get-CsManagementStoreReplicationStatus again.
This concludes Phase 5. Today we added the Edge Server role to our topology, published, and verified the configuration settings. In Phase 6 we’ll be discussing possibly the biggest task yet, which is moving from a pilot to a production deployment. So definitely make sure to check back tomorrow for that blog! Until then, I thank you for checking out this blog and I hope you have found this helpful.
]]>We’re half way there! Today we discuss phase 4 of 8 on our migration to Skype for Business Server 2019. In this article we’ll be discussing moving test users to your pilot pool that you have already, planned, prepared, and deployed! If you are just tuning in for the first time, check out my blog page for Phases 1-3. With that said, let’s get moving (get it…hehe)!
Now that we have deployed the Skype for Business Server 2019 pilot pool, it is time to start moving test users to that pilot pool. There are two methods that can be used when moving either single users or groups of users:
The topics in this section outline tasks that must be completed during the pilot deployment, as well as prior to moving your deployment of Skype for Business Server 2019 from pilot deployment to a production-level deployment.
View current users in legacy pool
Verify user replication has completed
Move a single user to the pilot pool
Moving a user via Skype for Business Server 2019 Control Panel
Moving a user via Skype for Business Server 2019 Management Shell
Move-CsUser -Identity "Brian Siefferman" -Target "pool02.perficient.com"
Get-CsUser -Identity "Brian Siefferman"
Move multiple users to the pilot pool
Moving multiple users via the Skype for Business Server 2019 Control Panel
Moving multiple users via the Skype for Business Server 2019 management shell
Get-CsUser -Filter {DisplayName -eq "User1" -or DisplayName - eq "User2"} | Move-CsUser -Target "pool_FQDN"
Get-CsUser -Identity "User1"
Moving all users at the same time via Skype for Business Server 2019 management shell
In this example, all users have been returned to the legacy pool (pool01.contoso.net). Using the Skype for Business Server 2019 Management Shell, we will move all users at the same time to the Skype for Business Server 2019 pool (pool02.contoso.net).
Get-CsUser -OnLyncServer | Move-CsUser -Target "pool_FQDN"
Get-CsUser -Identity "Hao Chen"
Great job! You’re officially done with Phase 4 in your migration to Skype for Business Server 2019! Check back tomorrow for Phase 5 where we discuss adding an edge server to your pilot pool!
]]>Hi there! Welcome back to part 3 of 8 in our migration to Skype for Business Server 2019! In the last two phases we planned and prepared for the migration. This time, we’ll get our hands dirty by taking our first steps in deploying the Skype for Business Server 2019 pilot pool. Also, if you haven’t had a chance to check out Phase 1 and/or Phase 2, check out my blog page and you can find it there. With that said, let’s get right to it!
The deployment of Skype for Business Server 2019 requires using Topology Builder to define your topology and the components you want to deploy, preparing your environment for deployment of Skype for Business Server 2019 components, publishing your topology design on the first Front End Server, and then installing and configuring Skype for Business Server 2019 software for the components for your deployment. When completed, your Skype for Business Server 2019 pilot pool deployment will coexist with an existing legacy pool. Let’s go over each of these steps in a little more detail.
Prepare Active Directory for Skype for Business Server
Download Topology from existing deployment
Deploying Skype for Business Server 2019 pilot pool
Note: The following procedure discusses features and settings you should consider as part of your overall pilot pool deployment process. This section only highlights key points you should consider as part of your pilot pool deployment.
When you deploy a pilot pool, you use the Define New Front End Pool wizard. You should deploy the same features and workloads in your Skype for Business Server 2019 pilot pool that you have in your legacy pool. If you deployed Archiving Server, Monitoring Server, or System Center Operations Manager for archiving or monitoring your legacy environment, and you want to continue archiving or monitoring throughout the migration, you need to also deploy these features in your pilot environment. The version you deployed to archive or monitor your legacy environment will not capture data in your Skype for Business Server 2019 environment.
Log on to the computer where Topology Builder is installed as a member of the Domain Admins group and the RTCUniversalServerAdmins group.
Enter the pool fully qualified domain name (FQDN). When you define your pilot pool, you can choose to deploy an Enterprise Edition Front End pool or a Standard Edition server. Skype for Business Server 2019 does not require that your pilot pool features match what was deployed in your legacy pool.
On the Select features page, select the check boxes for the features that you want on this Front End pool. For example, if you are deploying only instant messaging (IM) and presence features, you would select the Conferencing check box to allow multiparty IM, but you would not select the Dial-in (PSTN) conferencing, Enterprise Voice, or Call Admission Control check boxes, because they represent voice, video, and collaborative conferencing features.
Verifying pilot pool coexistence with legacy pool
Connecting pilot pool to legacy Edge Servers
Configuring XMPP gateway access policies and certificates
Note: XMPP functionality has been deprecated in Skype for Business Server 2019, however you can continue to use it on a legacy server that is in coexistence with Skype for Business Server 2019. Make sure you have already deployed the legacy server (Skype for Business Server 2015 / Lync Server 2013) XMPP Gateway, and configured the access policies to enable users for legacy XMPP Gateway. For details, see Migrating XMPP Federation.
The steps to configure an external access policy to enable users for legacy XMPP gateway are as follows:
Great job! So far we’ve planned and prepared for the migration as well as deployed a pilot pool for Skype for Business Server 2019. In the next phase we’ll start moving our first test users over to that pool to begin using it! Check back in tomorrow for Phase 4!
]]>Welcome back! Today we’ll be discussing the second phase of your migration to Skype for Business Server 2019. If you are just joining us for the first time I’d recommend back tracking to my Phase 1 blog article. In the first phase we planned and now in this phase we will begin preparing for the migration. So with that said, off we go!
Now that we have the basic building blocks on planning the migration, it is now time to discuss preparing for the migration. This is done by considering the following topics:
Let’s dig a bit deeper into each of these verification steps by showing you a step by step process.
Verifying that legacy services are started
From the legacy Front End Server, navigate to the Administrative Tools\Services applet.
Reviewing the legacy topology in Skype for Business Control Panel
Log on to the Front End Server with an account that is a member of the RTCUniversalServerAdmins group or a member of the CsAdministrator or CsUserAdministrator administrative role.
Open the Skype for Business Server Control Panel.
Review legacy users in Skype for Business Control Panel
Open the Skype for Business Server Control Panel.
Verify legacy Edge and federation settings
Start Topology Builder.
Verifying legacy XMPP federated partner configuration
From the legacy XMPP server, navigate to the Administrative Tools\Services applet.
Verify that the Office Communications Server XMPP Gateway service is started.
There you have it, now that we have completed phases 1 and 2 of your migration to Skype for Business Server 2019 you are well on your way! However, this only lays the foundation for our migration, in the next few phases we’ll be building on this by deploying our first pilot pool and progressing from there! Nevertheless, I hope you have found this helpful and I’ll see you for Phase 3!
]]>
Skype for Business Server 2019 was recently released for preview on 7/24/18. With this release comes a plethora of information on what is included in this revision, what changes were made, and possibly the most important thing, how to migrate from Lync Server 2013 or Skype for Business Server 2015 to Skype for Business Server 2019. In this blog series, we’ll be discussing just that, by walking through each phase necessary to upgrade your existing deployment to the latest and greatest Microsoft has to offer. As you could probably guess, this will be an 8 part series and I’ll be releasing one blog per phase on a daily basis! Just for some context, I’ll be using the following terms throughout the blogs, so to save you some time I’ll define them below:
Great, now that we got that out of the way we should be all set! So without further ado, let’s jump right in!
Before we even dive in to the migration phases we should understand the migration process and coexistence testing. Best practices when migrating to Skype for Business Server 2019 is to use the side-by-side migration migration process. In a side-by-side migration, you deploy a new server with Skype for Business Server 2019 alongside a corresponding server that is running a previous version (Lync Server 2013 or Skype for Business Server 2015), and then just transfer the operations over to the new server. If things somehow go FUBAR (meaning included if you aren’t familiar with the slang word hehe), worry not, as you can always roll back to a previous version. To do this you will only have to shift operations back to the original servers.
Note: BE AWARE! If you find that you need to roll back to the original servers, any new meetings that were scheduled with the new clients will not work, and the clients would also need to be downgraded.
For coexistence testing, once you have completely deployed Skype for Business Server 2019 in parallel with your legacy system, the deployment will represent a coexistence testing state. While in this state, it is crucial to thoroughly test and ensure that:
Before the migration even occurs you must also understand the state of each deployment and ensure that each deployment is functional and working as expected. The coexistence state typically exists throughout the pilot testing of Skype for Business Server 2019. The pilot testing will just consist of moving legacy users to Skype for Business Server 2019 for a certain amount of time to test application compatibility and features to ensure they are working properly. Once the pilot testing is complete, all remaining users are moved to the production version of Skype for Business Server 2019, with an end state of decommissioning the legacy pools and applications.
Within the migration process, it is broken down into 8 different phases:
Phase 8: Decommission legacy pools
Today we’ll be discussing the first and most important step in your migration journey, which is planning.
Planning is the first and most crucial phase in your migration journey. As the saying goes, “failing to plan is planning to fail” and this is no exception. Within the planning phase you must focus on the following:
This concludes the first phase of your migration to Skype for Business Server 2019. I hope you have found this helpful and check back tomorrow when I release Phase 2!
]]>
By default in Skype for Business, any two users (internal or external) who can communicate with each other can also see each other’s presence information. Some organizations may want to give their end users control on who they want to see their presence information. This can be configured through a feature called Privacy Mode, and this blog article will cover how to configure it and what it means from an end user’s perspective.
In a Lync or Skype for Business on-premises server deployment, there is not an option in the admin center to enable or disable Privacy Mode. The current settings can be viewed using the PowerShell command Get-CsPrivacyConfiguration. Privacy Mode is controlled through the EnablePrivacyMode property. When set to False, presence information is available to anyone in the organization as well as external federated companies. When set to True, this enables the user the option to control the Privacy Mode in their client. When enabled in their client, only their Skype for Business contacts can see their presence. Use the Set-CsPrivacyConfiguration command to change this for the deployment. Additional privacy configurations can be made at the site or service level using the New-CsPrivacyConfiguration command; however, a new global scope policy cannot be created.
In Skype for Business Online, there is an option in the admin panel to set the privacy mode. It can be found under Organization > General and has two options: Automatically display presence information or Display presence information only to a user’s contacts.
The first option is the equivalent to setting EnablePrivacyMode to False, and the second option is the equivalent to setting it to True. In fact, this can also be controlled in Skype for Business Online PowerShell using the Set-CsPrivacyConfiguration, but new custom configurations cannot be made like they can be in the on-premises server products. When changing this in Skype for Business Online, I typically found it did not take effect for 1 hour, but your mileage may vary due to replication in the system. Most Office 365 tenant related changes seem to have an SLA of 24 hours, so if you do not see the change happen after that, a support ticket is the next step. It also requires signing out and signing back into the Skype for Business client to change the settings options.
When presence information is configured to automatically be available, the Status option in the client appears like this:
When Privacy Mode is enabled, the Status option in the client changes to allow the end-user to choose whether or not their presence will show to everyone or to people in their Contacts list:
Selecting the first option of I want everyone to be able to see my presence will allow anyone in the organization or external federated partners to view your presence. When the second option of I only want people in Contacts to see my presence, you will appear as Offline to any one who is not in your Contact list. However, other people in the organization and federated partners can still contact you via instant message or voice and video calls. It does not prevent contact, only viewing of presence information. Also, these privacy settings are not honored by older clients, such as Microsoft Office Communicator 2007 R2 or Microsoft Office Communicator 2007. If a user signs into one of these older clients, they may be able to see another user’s presence who they are not authorized to view. When enabling Privacy Mode, it is suggested to create client version rules that block these older clients (creating these rules is only possible in the on-premises server environments).
I would be cautious in changing this setting if you have an established deployment in either on-premises or Skype for Business Online. When I enabled Privacy Mode in a test Office 365 tenant and signed into my client, it automatically selected the radio button to only allow people in my Contacts to see my presence. If this were enabled after a deployment, this could cause some confusion among users as to why everyone starts to appear as Offline to them but they are able to contact and to call them. Before making this change, ensure there is proper change management and communication to the end-user population on the effects of the change and how they can control their options.
There is another option in controlling presence and communication through privacy relationships. Privacy relationships allow people to control how much of their information is shared with other people in their Contacts list. There are five privacy relationships that can be set for your Skype for Business contacts:
This Office Support article has a table that outlines how much information each contact relationship can view for your account. Blocked contacts will not be able to contact you but can still view your name and e-mail address. However, blocking a contact only prevents a Skype for Business call from being established. It will not block an incoming call from the PSTN if the number matches that contacts phone number. To change the privacy relationship for a contact, right-click the contact in your Skype for Business client and choose Change Privacy Relationship. Contact privacy relationships put more control in the user’s hands but will require them to add each contact they want to block into their Contacts list and change the privacy relationship. If you need to block only a few users, this could be manageable but is not sustainable for blocking a large group of users.
References:
Office Support: Control Access to Your Presence Information in Skype for Business
Microsoft Docs: Set-CsPrivacyConfiguration
Microsoft TechNet: Configuring Enhanced Presence Privacy Mode in Lync Server 2013
Did you find this article helpful? Leave a comment below or follow me on Twitter (@JeffWBrown) for more information on Skype for Business and Microsoft Teams.
Great news for enterprise Mac users – this week, out of Redmond: the new Skype for Business client for macOS has been released and is available for download!
If you’re a business Mac user (or if you support Mac users), and currently use Lync Server, Skype for Business Server, or Skype for Business Online as part of Office 365 in your enterprise, you know that your option for a full-featured unified communications client for Mac users has been the Lync 2011 client – client software for the macOS platform has not been updated since that release. In contrast, Windows users have experienced regular updates and feature enhancements included in the release of the Lync 2013 client, Skype for Business 2015 client, and Skype for Business 2016 client as part of the Office 2016 suite. Meanwhile Mac users have been patiently waiting for an upgrade. Your patience as Mac users and administrators has now been rewarded with this release! It is encouraging to see Microsoft placing such a significant amount of resources into carrying forward the new Skype for Business platform for customers who leverage Apple platforms in the enterprise, yet still want to seamlessly communicate and collaborate using their organizations Office Server or Office 365 platforms.
Some reading this post may already be familiar with the client in its preview state – Microsoft offered users registered in the Skype for Business Preview Program an inside look into the client throughout the development process, and received overwhelming feedback during the run of the Mac client preview (so much, they had to begin turning potential preview users away). This feedback was used to develop what I anticipate will be the best Mac client yet. Some of the new functionality introduced in this new client includes:
Microsoft has been working on this client for some time now, and has stated that the client was a fresh build, using none of the previous code base for the Lync 2011 client… the new Mac client was built from the ground up. This means there are still some features that will show up in subsequent updates, as well as some inevitable bugs that we will encounter and work through as we begin to roll this out to our clients.
For additional information on the Skype for Business on Mac client, reference the following resources recently published by Microsoft:
Office Blog: Skype for Business on Mac Release Announcement
Download the Skype for Business on Mac Client
Skype for Business on Mac: Known Issues
Client Comparison Tables, now including the Skype for Business on Mac Platform
Through the web, in-print, and from subject matter experts you can find many materials, scenarios, and use cases on how to migrate to Office 365. It is likely that your unique situation has been partly documented somewhere or an external resource can ease your mind as you begin to evaluate unplugging on-premises hardware.
Don’t forget your line-of-business employees.
Your organization’s core may consist of employees that can be drastically disrupted by the solutions your migration has to offer. Here a few tips to manage that disruption.
Help users understand “the cloud”
To most nontechnical employees “the cloud” still remains a confusing buzzword. Educating your end users on basic cloud principles can lead to wins:
Brief and simple communication
If you send emails or training documents too often you run the risk of being taken likely. Some may assume neglecting a piece of communication is okay because it will be there the next time around. Strategically plan your communications and adjust as you evaluate your execution. Have a centralized place where all communications, FAQ’s, and roadmaps can referenced.
Customization Within
Each department of your organization has unique processes and workflows. The technical realm will change consistently across the organization, however how each segment adopts and uses new tools will vary. Be flexible with respect to the various groups and certain that your communication is receptive.
Identify Advocates
As you begin turn on solutions and deploy software look for those who are eagerly receptive to new tools and are fast learners. These individuals will likely want to know more than the necessary details and can relate your content to their job role better. Enable them to teach others that work closely with them. They are advocates for change, immediate aid to their colleagues, and will be great sources for feedback.
“Always learning” for many employees does not include staying up to date with new technologies that help them do work. Their specialization is important to your line-of-business and any change outside of that should be handled tenderly. Your IS department can improve productivity and positively influence workplace culture by mitigating stresses that come with drastic change.
In a previous blog post I talked about how administrators and architects should place more emphasis on planning for application sharing bandwidth in their Skype4B deployments. Armed with that information, the next logical progression of this blog series continues the focus on application sharing and discusses the available methods within Skype4B to manage and control the bandwidth requirements for application sharing.
Speaking broadly, there are typically two methods of controlling any sort of application bandwidth across enterprise networks. Both methods are not mutually exclusive and can be used in concert with one another, but it is largely up to network engineers and the application engineers to work together to find the best solution for your environment.
Control the traffic at the network
For most of the network engineers out there, this is the “preferred method”. Like controlling traffic on highways via “normal lanes” and “HOV lanes”, network traffic is separated, classified and handled in a manner that is configured by the network engineers to give preferential treatment (and bandwidth) to high priority traffic while giving normal treatment to non-priority traffic. This is most generally referred to as Quality of Service (QoS). QoS is typically seen in two forms:
In either case above, network engineers can control, on a per-hop basis, how each classification of traffic is treated along the entire network path. While flexible and powerful, this method requires engineers to know all the various types of traffic on the network and to classify it accordingly (and ensure it is classified across all devices), which can be an arduous task and result in traffic being incorrectly classified. In addition to the work required, as more and more applications move to SaaS available across the Internet, QoS is lost as the traffic leaves the corporate network and moves across the Internet which restricts QoS from being available from end-to-end.
Control the traffic through the application
For most of the application engineers out there, this is the “preferred method”. Think of this as the “honor system” where some type of built-in application configuration tells the application to limit itself to X bandwidth when utilizing the network. While undoubtedly easy to deploy, this method has no awareness of other traffic around it and no integration with network devices that send/receive traffic, which results in a more limited “one-size-fits-all” approach.
In almost all enterprise deployments, architects and engineers desire to identify the traffic produced by Skype4B and fit that traffic within the available enterprise network configurations. Skype4B offers both of the configurations above and can be configured for one or both to suit the needs of the enterprise network.
Limit Application Sharing Bandwidth Within On-Premises Skype4B Conference Policies
This method is by far the easiest option to limiting application sharing bandwidth within Skype4B. The only built-in method to control application sharing bandwidth is via the Conferencing Policies within Skype4B. By default, the Global policy has no functional restriction on bitrate and is set to 50000.
Get-CsConferencingPolicy | select Identity,AppSharingBitRateKb | fl
If you decide to limit bandwidth, two approaches could be taken:
Set-CsConferencingPolicy –Identity Global –AppSharingBitRateKb 1000
New-CsConferencingPolicy –Identity TestPolicy –AppSharingBitRateKb 1000
Limits of this approach
While the second option above is my preferred option for handling bandwidth natively within Skype4B, it does come with limits. The biggest current limitation is that the AppSharingBitRateKb parameter is handled per-user and only is applicable to the presenter. Where this becomes a challenge is with branch sites that have much lower bandwidth than other larger branch sites with high bandwidth.
In the figure above, when the user in Site B goes to share their desktop with the user in Site A, the effective limitation is based on the user in Site B. With Site A limited to 1.5 Mbps, that could result in 67% of available bandwidth being consumed for a single desktop share. When you add in the possibility of multiple users sharing desktops between the two sites, oversubscription of the 1.5 Mbps circuit becomes a very real risk. Also of note is that this AppSharingBitRateKb behavior is applied both in P2P calls and within multiparty calls.
Impact of this approach with Lync for Mac
Through several of my deployments I’ve noticed there seems to be a significant difference with RDP performance on Mac OS clients, especially the Retina display models, when the AppSharingBitRateKb setting is reduced to a low value. Interestingly enough, the low value doesn’t seem to impact Windows-based clients but users on Lync 2011 for Mac would report that application sharing was largely unusable. In scenarios where there are Lync for Mac clients I would strongly suggest only using the Optimal numbers referenced in my previous post for the AppSharingBitRateKb setting.
Limit Application Sharing Bandwidth Within Skype4B Online Conferencing Policies
Sadly, this is a bit of a bait-and-switch option because it really isn’t an option at all. Microsoft pre-creates and manages all conferencing policies within Skype4B Online and as a result you cannot create new policies or edit existing ones. As a result of this any user accounts that are homed online are restricted to using the AppSharingBitRateKb value Microsoft has defined, which is currently 50000. For all intents and purposes, the application sharing bandwidth is not restricted for Skype4B Online deployments so architects and engineers should carefully plan your network ingress/egress points to ensure sufficient bandwidth is available. If bandwidth restrictions are required in Skype4B Online deployments, you must begin to examine QoS restrictions for each modality.
Limit Application Sharing Bandwidth for On-Premises Skype4B Deployments through QoS
There are a number of articles on the Internet that already talk about this overall process but it boils down to telling the Skype4B client to utilize certain port ranges for each modality and then configuring client/network devices to treat each modality in a certain way by dedicating queues (loosely equal to bandwidth) for each network hop. The pre-requisite to all of this is that individual port ranges must be specified first. The overall process of doing so consists of:
Once port ranges are defined, the clients and servers will begin utilizing those ranges for each modality when communicating on the network. With individual port ranges in use, architects can then begin to classify the traffic using QoS using two main methods:
A typical DSCP/CoS classification of traffic is listed below:
Modality | DSCP Value | CoS Value |
Audio | 46 | 6 |
Video | 34 | 4 |
SIP Signaling | 24 | 3 |
Application Sharing | 18 | 2 |
File Transfer | 10 | 1 |
Once you have calculated the expected application sharing bandwidth through the Lync Bandwidth Calculator for each site in your environment, network engineers can configure QoS queues appropriately to handle the expected traffic.
Limit Application Sharing Bandwidth for Online Skype4B Deployments through QoS
This method is similar to on-premises deployments but is limited because administrators cannot define the port ranges utilized for Online Skype4B deployments. Microsoft has the following port ranges pre-created for clients that are homed Online:
Source Port | Protocol | Usage |
50000-50019 | UDP | Audio |
50020-50039 | UDP | Video |
50040-50059 | TCP | Application Sharing and File Transfer |
Architects still have the option to utilize Group Policy based QoS policies or class-map policies, but those have two major limitations:
Despite not being able to maintain QoS end-to-end in an Online deployment, you can still classify the traffic into discrete queues to ensure the bandwidth is allocated for application sharing which in turn ensures that application sharing bandwidth doesn’t impact other traffic on your network. Without reinventing the wheel, check out this blog post for information on configuring QoS for Online deployments.
The best option: utilize both application limits and QoS
For every on-premises deployment out there you should absolutely be coordinating application limiting in concert with QoS. In doing so you gain the following benefits:
Note: There’s a number of other options here I’ve left out, but in every case the benefits are helpful to both the network team AND the application team.
For Online-only deployments, you should still utilize QoS even though you are limited in configuring the application. Despite granular application control not being available, network engineers can still classify traffic and give a roughly-predictable utilization for each queue of traffic (application sharing included).
But what about Call Admission Control?
An astute reader would point out that Skype has Call Admission Control that can be used to restrict traffic as well, and you would be correct to say that additional control may be available. Call Admission Control is only available for the following configurations:
If CAC is available for your deployment, configure it in tandem with your QoS configuration. In fact, CAC is my preferred approach to bandwidth limits for audio and video modalities because it allows flexibility per-site AND includes reporting. Conferencing Policy configurations of audio and video are applicable to each user regardless of where the user physically resides on the network, which can result in a user using more bandwidth than may be available if the user is travelling between sites. Since application sharing currently isn’t supported in CAC today, architects need to utilize Conference Policies for the foreseeable future.
]]>