Skype for Business Addressbook Normalization

The use of regular expressions for dialling and address book normalization have been long been established in the Microsoft Communications product line, but they are not always the easiest rules to construct and then test, especially when doing more advanced manipulation.

Lync 2010 introduced the dialling rule builder in the Control Panel which would construct basic regex rules for you as well as provide a method for testing them (along with the respective powershell commandlets), but the testing of address book normalization has always relied on using Abserver.exe with the -testPhoneNorm switch. Unfortunately, as pointed out by Greig (https://greiginsydney.com/vale-company_phone_number_normalization_rules/) this has been removed in Skype for Business Server 2015  however as he points out there doesn’t seem to be any test-cs commandlet to actually test these rules unlike for voice routing.

Additionally, as blogged by Ken Lesko (http://ucken.blogspot.co.uk/2015/05/skype4b-address-book-normalization.html) the address book normalization rules are now created via powershell rather than saved in the old Company_Phone_Number_Normalization_Rules.txt

So, how do we test these apart from watching the event log and seeing which numbers do not normalize correctly?

Well, I’ve prepared a sample powershell script that will compare a number against all of the normalization rules to see if there is a match, and if there is it will output those details whilst also attempting to apply the transformation so you can see the final normalized number.

Now I’ve only tested this rule against a few simple normalization rules so will be interested in hearing how it works against more complicated rules or if you can refine it but hopefully it provides a little direction on how it could be done.


import-module SkypeForBusiness
$normrules=Get-CsAddressBookNormalizationRule
Write-host "Enter telephone number to check"
$input = read-host
foreach ($rule in $normrules)
{
$testregex=$rule.Pattern
$test = [regex]"$testregex"
if ($test.Match($input).Success -eq "true")
{
$normalizednumber = $input -replace $rule.Pattern,$rule.Translation
write-host ""
Write-host "Priority: "$rule.Priority
Write-host "Name: "$rule.Name
Write-host "Description: "$rule.Description
Write-host "Pattern: "$rule.Pattern
Write-host "Translation: "$rule.Translation
Write-host "Normalized number: " $normalizednumber
}
}

Skype Hybrid – Moving users via Skype Control Panel

Now that Skype for Business server has introduced the ability of migrating Online users I’d thought I’d see how the process works in my lab

Note: As I discovered, the same restrictions regarding management of Domain Admin/Protected group members applies here too, this means you get a nice error message if you try and use the Control Panel to move a Domain Administrator.

First we find our user

Moving Skype users 1

After selecting the user, you follow the same procedure as if you are moving a user between pools, in this case you instead select the Move selected users to Skype for Business Online instead

Note: During testing I migrated a user homed on a Lync Pool straight to Skype Online without having to migrate to Skype For Business server first.

Moving Skype users 2

Nice reminder that you need to have licensed the user first in the Office 365 portal, otherwise they won’t be able to sign inMoving Skype users 3

If you have not already signed into Office 365 from the Home section of the control panel you will be prompted to sign in before you can move the user(s)Moving Skype users 4

Moving Skype users 5

Moving Skype users 6

Now we get the last confirmation promptMoving Skype users 7

Success!

Moving Skype users 8

Here we can see the user has been moved, although still reporting as LyncOnline!Moving Skype users 9

When you try and edit the user in the on-premise control panel you see a similar screen to Lync

Moving Skype users 10

Skype Hybrid – Connecting to Online

Skype for Business Server has brought in limited connectivity between on-premise hybrid deployments and their Skype Online counterparts via the Skype for Business Control Panel.

Now, on the home screen you have the option to log into Office 365, in Lync integration to Office 365 was via powershell only.

skype control panel

When you click sign in, you get prompted for username and password, which I like as Office 365 admin accounts may not be linked to on-premise accounts for single sign-on

skype online signin

And then you get confirmation

skype online confirmation

You can change the account you’ve signed into if need be

skype control signed in

Skype online change account

Setting up Skype Hybrid is now possible from the control panel

skype hybrid

Now, my Lync 2013 deployment was already configured for Hybrid so all the checks passed, hopefully I’ll get screenshots from a new hybrid and will be able to update this

skype hybrid configured

Starting a Skype for Business pool

Starting a Skype pool for the first time now requires the use of the powershell command, start-cspool rather than clicking start services in the deployment wizard.

It will then go through the process of starting the pool, during this time it might report issues and delays but that it to be expected during startup and placement of routing groups.

Here are a few screenshots of the process

poolstartup1

poolstartup2

poolstartup3

poolstartup4

New Certificate wizard in Skype for Business

Whilst generating the certificate for a new Skype pool I discovered the new certificate request wizard has changed

skype certificate1

Pressing Advanced brings up the previous wizard menus that allow offline submissions, alternative credentials and templates along with adding SAN entries to the request and allowing export of private key.

After hitting next it continues as it did in Lync deployments.

Skype for Business Topology Builder changes

Now that Skype for Business Server has been released I thought I’d start off by having a look at the changes introduced to the topology builder. The role of the topology builder hasn’t changed from Lync but there are a few new additions due to new roles and new deployment options.

As has been widely reported you can’t deploy the tools on a machine that currently has the Lync 2013 tools installed, so after finding a suitable machine the first thing you notice is that the icon has been updated with the Skype logo

skype builder logo

 When you open it you’ll get the same prompt for downloading, opening or creating a new topology.

Topology Builder

You now get the option to upgrade an existing Lync pool

pool upgrade

And then the confirmation

upgrade confirmation

When creating an enterprise pool, the options have changed slightly with the introduction of support for SQL AlwaysOn

If you create a standalone SQL server the options display as:

Skype SQL option

But when you tick the box for high availability it selects AlwaysOn as by default (SQL mirroring is being depreciated by the SQL product team but mirroring is still supported with Skype for Business)

Skype SQL option alwayson

If you change it to mirroring you can then enter the mirror port number

Skype SQL option mirror

After choosing which HA SQL method you’ll be using the define sql Server store options will change and will remove the option for creating a mirror if you chose AlwayOn

sql mirror

sql alwayson

Again if you chose AlwaysOn for the Archiving/Monitoring stores it will remove the mirroring options

Skype SQL archiving

When creating a Skype Edge server you’ll notice there is a new box to select for federation

Skype Edge

Another new option in Skype for Business is the video interop server, initial configurable options are limited:

Skype vis server

Skype vis server2

Skype vis server3

The only option you have once the server/pool has been created is to enable TCP or change the ports

VIS server ports

Along with the Video Interop Servers there is the addition of Video Gateways and SIP Video trunks

vis gateway

vis video gateway