Monday, July 23, 2012

Location Information Service (LIS) Lync 2010/ 2013

Lync 2010 with CU1 introduced the LIS for identifying the Users Location for E-9-1-1 call and internal information too. The E-9-1-1 Service must be supported by a) SIP Trunk Provider or/and b) Law. What does Law mean?  Simply explained, if you are for example in Germany, so need to ensure you can make Emergency Calls also during Power Interruption. This cannot be done with Computer based Systems. A PABX is different, there are service ensuring the phones availability.

So let look into LIS itself:
The information will be stored in the LIS Database for Lync, which is the same for Lync 2010 and 2013.
Lync identifies 4 different Location Types:
1.     Switch Ports
2.     Switches
3.     IP Subnets
4.     Wireless Access Points

All associated commands here are:
  • Get-CsLisSubnet
  • Set-CsLisSubnet
  • Remove-CsLisSubnet
  • Get-CsLisWirelessAccessPoint
  • Set-CsLisWirelessAccessPoint
  • Remove-CsLisWirelessAccessPoint
  • Get-CsLisSwitch
  • Set-CsLisSwitch
  • Remove-CsLisSwitch
  • Get-CsLisPort
  • Set-CsLisPort
  • Remove-CsLisPort

It is important to remember that LIS Networks have nothing in common with the Lync Networks, which you mainly use for Region and Site consolidation.
Wireless, Switches and Port will be identified with their ChassisID, which is equivalent to the MAC address (Layer-2 Switch), managed Ethernet switches that support Link Layer Discovery Protocol-Media Endpoint Discover (LLDP-MED)

Just not enough here, that’s when I talked about the Service Provider, here are several things you need to check and configure:
Before publishing the location database, you must validate new locations against the Master Street Address Guide (MSAG) maintained by your SIP trunk or public switched telephone network (PSTN) E9-1-1 service provider.

Remember for Planning (MSFT):
hen you use ELIN gateways, you populate the Location Information service database with the civic address and at least one ELIN for each Emergency Response Location (ERL). During the planning phase, it is a good idea to decide how you want to name the locations and how you want to assign ELINs.

Planning Location Names

The Location Information service Location field has a maximum length of 20 characters (including spaces). Within that limited length, try to include the following:
  • An easy-to-understand name that identifies the location of the 911 caller to help ensure that emergency responders find the specific location promptly when they arrive at the civic address. This location name may include a building number, floor number, wing designator, room number, and so on. Avoid nicknames known only to employees, which might cause emergency responders to go to the wrong location.
  • A location identifier that helps users to easily see that their Lync client picked up the correct location. The Lync 2010 client automatically concatenates and displays the discovered Location and City fields in its header, while the Lync 2013 client ONLY displays the discovered Location information. A good practice is to add the street address of the building to each location identifier (for example, "1st Floor <street number>"). Without the street address, a generic location identifier such as "1st Floor" could apply to any building in the city.
  • If the location is approximate because it’s determined by a wireless access point, you may want to add the word Near (for example, "Near 1st Floor 1234").

Planning ELINs

ERLs define specific locations at a street address. You need to decide how you want to divide your building space into ERLs and how many ELINs to assign to each ERL. For example, in a multifloor or multitenant building, different areas in the building can be assigned different ERL zones. Typically, each floor in a building is designated as an ERL. Each ERL is then assigned one or more ELINs, which are used as the calling number(s) during an emergency call. Contact your PSTN carrier for phone numbers that you can use for ELINs. The following table provides an example of ERLs for a specific street address.

After we have designed the LIS, it’s part for the Service Provider to be integrated as well.
There are two steps necessary:

1.     Setup the Service Provider
2.     Validate the Addresses in your LIS DB against the Master Street Address Guide (MSAG)
3.     Publish the Location DB

Set-CsLisServiceProvider -ServiceProviderName Provider1 -ValidationServiceUrl <URL provided by provider> -CertFileName <location of certificate provided by provider> -Password $pwd
Get-CsLisCivicAddress | Test-CsLisCivicAddress -UpdateValidationStatus

CsLisCivicAddress is only for receiving and testing the Civic Addresses against the Master Street Address Guid. The configuration is still part of CsLisLocation, where you create, modify or read the Location Configuration Database entries.

If you have remote user, you still need to configure a Client Policy, which makes it recommended for user entering a Location.

There are a lot more blog’s where you can see how you configure the above commands, so I’m not repeating this here, but its more how the service work and necessary to know about LIS.

Friday, July 20, 2012

LYNC Device Configuration (DHCP) - Step by Step

New feature Lync 2013:
Differences between Lync 2010 and Lync 2013 is in the DHCP Option 43.
Lync 2013 support with it's devices a dedicated VLAN deployment.
Todo's before configuring DHCP:
Before we are starting the DHCP Server Option, we need to make Lync 2010/ 2013 aware of the DHCP enbaled devices.
Turn on this functionality by using this Lync Server Management Shell command as follows:
set-CsRegistrarConfiguration -EnableDHCPServer $trueIn addition, ensure that broadcast packets from the client can reach the DHCP server(s) on the Registrar. This may mean configuring DHCP relay agents to forward DHCP packets to DHCP servers on the Registrar.
DHCP Options which are requred:
  • Option 120 (SIP Servers) is defined in RFC 3361. It is used to return a list of SIP servers.
  • Option 55 is used by the device to ask the DHCP server for the values of specific options (in our case 120 and 43).
  • Option 60 is used by the client to specify the vendor for which option 43 is requested.
  • Option 43 is a complicated option: it has many sub-options and can also have many values. The effective value for option 43, IOW the value that the DHCP server will send to the client, depends on the vendor class id. So, in a sense there is a <key, value> relationship between option 60 and option 43: for the vendor specified in option 60, option 43 provides a set of sub-options that have been configured for that vendor.

First we have look into DHCP Server which is already configured.
Sure, we need this possibly for devices like a Polycom CX600.

The next screenshots let you have a look into the configured options, which the Batch will write into the DHCP Server. Surly we are Microsoft Technology interested, that's why I have only posted the MSFT DHCP Server site.

Now we coming to the configuration part:
Copy both, the DHCPUtil and the DHCPConfigScript into a shared folder or copy it onto you DHCP Server.

Next you need to prepare a table, where you are able to identify the clear text parameter which are configured in your infrastructure:

Parameter Value
SipServer The FQDN of the main Director or main Front End pool in a particular site
WebServer The FQDN of the Web Server
CertProvUrl The URL of the Lync Server Certificate Server
EmulateClient Run as a client: sending a packet to the DHCP server and receiving the response
RunConfigScript Run DHCPUtil with a script
CleanDHCPConfig Removes Lync Server options

Replace the Value text with your actual setting. E.g.:
SipServer: dirpool.lync15.dir
WebServer: poolleft.lync15.dir
CertProvUrl: https://poolleft.lync15.dir:443/CertProv/CertProvisioningService.svc

Install Virtual C++ 2008 x86 to run DHCPUtil.exe for DHCP Options, if you are not on a Lync Server    

Run the DHCPUtil.exe -SipServer: dirpool.lync15.dir -WebServer poolleft.lync15.dir -RunConfigScript

It automatically will launch the DHCPConfigScript.bat and add's all parameters, execute it and write the data into the DHCP Server.

At the end you can validate your setting with the command:
DHCPUtil.exe -EmulateClient

This is all and easy. For validation purposes, open your DHCP Server and check, like I have shown in the screenshots that all your option are written.


References Lync 2010:

References Lync 2013:

Lync Server 2013 Enterprise Server Setup (Step-by-Step)

Now it's time for the for the fir Lync 2013 site. I'm following up with the Topology blog i released earlier.
I prepare the first Enterprise Server Lync 2013.
Just in the Test Lab, I don't have the Load Balance yet, so what I did was, I gave the only EE Server two IP addresses. The second one is for the POOLLEFT, this is a supported scenario if you only have single pool server in place.

First we need all the Pre-Requisites for the new EE Server in place, which I have listed here:

PowerShell 3.0
PowerShell 3.0 is not a standalone product, it's part of the Windows Framework 3.0

.Net Framework 4.5

Windows Identity Foundation

Windows Desktop Experience
SilverLight 4

Visual C++ 11 x64
Active Directory Management tools

  • Static Content
  • Default Document
  • HTTP Errors
  • .NET Extensibility
  • Internet Server API (ISAPI) Extensions
  • ISAPI Filters
  • HTTP Logging
  • Logging Tools
  • Tracing
  • Windows Authentication
  • Request Filtering
  • Static Content Compression
  • Dynamic Content Compression
  • IIS Management Console
  • IIS Management Scripts and Tools
  • Anonymous Authentication (This is installed by default when IIS is installed.)
  • Client Certificate Mapping Authentication

Dynamic Content Compression - was not in the documentation right now, be aware

Open PowerShell 3.0 and run the following command for IIS Setup:

Windows Server 2008 R2:

Import-Module ServerManager

Add-WindowsFeature Web-Dyn-Compression,desktop-experience,RSAT-ADDS,Web-Server,Web-Scripting-Tools,Web-Windows-Auth,Web-Asp-Net,Web-Log-Libraries,Web-Http-Tracing,Web-Stat-Compression,Web-Default-Doc,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Http-Errors,Web-Http-Logging,Web-Net-Ext,Web-Client-Auth, Web-Filtering,Web-Mgmt-Console,Msmq-Server,Msmq-Directory

This next step is for copy and past in W2k12:

Add-WindowsFeature RSAT-ADDS, Web-Server, Web-Static-Content, Web-Default-Doc, Web-Http-Errors, Web-Asp-Net, Web-Net-Ext, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Http-Logging, Web-Log-Libraries, Web-Request-Monitor, Web-Http-Tracing, Web-Basic-Auth, Web-Windows-Auth, Web-Client-Auth, Web-Filtering, Web-Stat-Compression, Web-Dyn-Compression, NET-WCF-HTTP-Activation45, Web-Asp-Net45, Web-Mgmt-Tools, Web-Scripting-Tools, Web-Mgmt-Compat, Desktop-Experience, Telnet-Client, BITS, Windows-Identity-Foundation -Source D:\sources\sxs

First the Screenshot for the Pre-Requisites:
.NET Framework 4.5 RC:

SilverLight 4.0:

Desktop Experience:

PowerShell script for IIS features:

If you start Setup.exe, it first installs the C++ Runtime:

Than it's time for the WMF 3.0 RC (PowerShell 3.0):

The Desktop Experience (you can do this via PowerShell too):

It will add the .Net FW 3.5.1 (so you remember that you can have multiple version of .NFW at the same time):

Install the Windows Identity Foundation (WIF):


Now we can finally start with the Lync Active Directory Preparation.
Therefore the First Step is to install the Administrative Tools, which you will find on the right site of the Installation Wizard:

Than as usual, we need to upgrade the Schema for Lync 2013 Preview. Since we are experienced, we want to do so via PowerShell:

Follow this command: Enable-CsAdServerSchema

After the Active Directory replicated the Schema changes, we have to verify if the Schema is successful implemented.

Follow this command: Get-CsAdServerSchema

Next step is the Forest Prep:

Follow this command: Enable-CsAdForest -GoupDomain LYNC15.DIR

Verify if the is action was successful too.
Follow this command: Get-CsAdServerSchema

Next step is the Forest Prep:
Follow this command: Enable-CsAdDomain -GoupDomain LYNC15.DIR

Verify if the is action was successful too.
Follow this command: Get-CsAdDomain

We have to define our Topology for Lync 2013 as the next action.

Start the Topology Builder and crete a NEW TOPOLOGY. Save the config file at a proper location and start Topology definition.

As I blogged before, have a look here on how to do this step-by-step.

SQL Server Mirroring is on of the option i have chose for this Lab, so as an additional Pre-Requisite, we need to prepare the Share before we are able to publish the Topology.

The next screenshots will take you through the configuration for the SQL Share Folder:
The requirements for the Share a simple.
Make sure you have really access to the Share, since the NTFS permission weight is higher than the share, you can still use "Everyone", else if you are in a secure environment, follow with the Share permission the same setup as I did for the NTFS permission.

NTFS Permission:
SQL01 (Primary):
you need read & write permission
SQL02 (Mirror): you need read
SQL Server Service Account: you need read & write permission
(The Service Account is not described yet in the Deployment Guides)



After the Topology is defined, you need to start preparing the SQL Server hosting the Central Management Store (CMS).
We do this also manually for Database initialization.
Follow the command: Install-CsDatabase -CentralManagementDatabase -SqlServerFqdn LYNC15SQL01.LYNC15.DIR

In SQL Server Management Studio, you will find the two databases:

LIS (Local Information Server)
XDS (Configuration Database)

After the Database is existing, you need to publish the Topology.

To do so, right click the root of the Topology Tree and click Publish Topology.

The Wizard will guide you through the entire process, so the topology will be written into the XDS Database.

(If you dont like PowerShell, you are able to run through the Database installation with the Wizard too, but remember if you have not install the Databases in a Default Path, or change the DP in SQL Server, you better do so with PowerShell, here are are able to specify every parameter including the Database and Log location)

Only if you have configured the SQL Server Backup Share proper, the Wizard will do nearly everything for you ;)
If you did not configure the Share Permission correctly, there is still a bug in the Lync 2013 Preview. The Wizard will run though perfectly with out giving you any error and information about the not proper configured SQL Server Mirroring. If you encounter this problem, correct your permission and follow exactly the other blog entry of mine:
You have to define the Sahre Location in the Wizard.
Make sure you have "\\" this in front of the Server Name. Btw, the FQDN is not necessary here.

Still in Lync 2013 the same as before, the CMS will be hosted on a Enterprise Pool, since i only have the POOLLEFT, i will surely install it here:

It will take some time and you can have everything ready in around 15min.

Beautiful, it is successful.

Just having a look into the LyncShare:
Well there are some more folder compared with LYnc 2010. This is regarding the additional Services and Feature included in Lync 2013.
I will explain you all this folders functions and purposes later.

The first step's for deploying Lync 2013 are done and we have now the focus on the Server Deployment itself.
Just that Lync Server 2013 will install much more Components than Lync 2010 did, if understandable due to consolidated and added features.
So don't be surprised if you will wait a little bit longer than usual.

You see the next Deployment Wizard menu, just follow the steps listed and it will lead to success.
Start with the local copy of the XDS Database, this will install a local SQL Server on every single Lync Server 2013 as a Pre-Requisite. But this is not different from Lync 2010.

Just chose the replication Source from the CMS Server Server.

As we know, the SQL installation will take really some time and you dont see and progress at all.
What you have to do is, open the Task Manager and follow the activity of the SQLEXPR_x64.exe, which is the installer for SQL Server Express. (Funny is, this is a 32bit installer.. Good question why?)

Next you are ready to install Lync Server Components, based on the Topology Definition you have done earlier.

Always necessary and an important configuration is are the Certificates.
What you still find in Lync 2013 are the Mobility Features included. So you don't have to do the same as in Lync 2010, because it is integrated.

Next we have to assign the Certificates:

And start the Services:

Better make sure all sure all Services are up and running.

If have setup the POOL DNS Name and IP Address you are able to start he CSCP:

I hope this overview helps you setting up our first Server, don't forget all the other DNS entries and than you have a lot of work ahead if you start configuring Lync.
Truly out of the box, even with Lync Std Edt, you can start working. But Lync 2013 has so so so many new features, you need time to dig through all of them. Here is still room to blog a lot.
Just continue and follow me, I will bring you deep into the Lync 2013 secrets.