Share via


Enabling Location Information Service (LIS) in Lync 2010

How to enable LIS

To enable just the Location Information Service (LIS) in Lync, you would generally follow these steps:

1. Populate the Location Information Service (LIS) database using one of the following Lync Server Management Shell cmdlets to define a mapping between a port, subnet, switch or wireless access point and the physical address:

Set-CsLisPort
Set-CsLisSwitch
Set-CsLisSubnet
Set-CsLisWirelessAccessPoint

Populate the Location Database
https://technet.microsoft.com/en-us/library/gg413069.aspx

The Set-CsLisLocation Lync Server Management Shell cmdlet only defines the physical location (civic address) and can be used to modify an existing civic address.

Set-CsLisLocation
https://technet.microsoft.com/en-au/library/gg398757.aspx

2. Publish the Location Database using the command Publish-csLisConfiguration. This cmdlet commits any changes in the central location database to the Central Management store, allowing the information to be replicated to the Location Information servers so that the locations can be rendered to clients.

Publish-CsLisConfiguration
https://technet.microsoft.com/en-za/library/gg398364.aspx

3. Upgrade Lync 2010 to CU1 (KB 2467763) on the workstations. This step is required only if the address was not validated by MSAG, the Get-CsLisCivicAddress command will show the MSAGValid value set to False.

Prior to Lync 2010 CU1, the location information loaded into the LIS in Lync Server 2010 had to be validated against MSAG before the location information was automatically shown in Lync. The reason for this requirement is the relationship with the support for E-9-1-1 in the US, where the address information needs to be very specific and validated before it can be used. The MSAG only contains addresses in the US and as such it was not possible to validate addresses outside of the US. With CU1, Lync will automatically show non validated location information, if there is only one location returned from LIS based on the request the Lync client sent to LIS.

2464841 Lync 2010 does not populate your location information automatically
https://support.microsoft.com/kb/2464841

2467763 Description of the cumulative update package for Lync 2010: January 2011
https://support.microsoft.com/kb/2467763  

Troubleshooting LIS

The mapping configuration, created by calling cmdlets such as Set-CsLisSubnet, is stored in a central location database (lis) in tables such as Subnet, Location and CivicAddress.

Although you can use SQL Management console to inspect the existing values, it’s better to leverage the PS cmdlets Get-CsLisLocation and Get-CsLisCivicAddress. The Get-CsLisLocation cmdlet differs from Get-CsLisCivicAddress in that in addition to retrieving address information, Get-CsLisLocation retrieves the name of the location and the company name associated with the location. The Get-CsLisCivicAddress cmdlet returns only unique addresses. It also returns the MSAGValid flag that specifies whether the address has been validated against the Master Street Address Guide.

Get-CsLisLocation
https://technet.microsoft.com/en-us/library/gg412834.aspx

Get-CsLisCivicAddress
https://technet.microsoft.com/en-us/library/gg398459.aspx

Once the mapping configuration is available, the client retrieves the location by HTTP from the Location Information servers. The requests can be recorded either on the server with Lync Server 2010 Logging Tool by selecting the LocationInformationService component or on the client (Communicator*.etl). The symbols required for converting the client-side log into a readable format are not public, and you will need to contact Microsoft support services for converting it.

Lync Server 2010 Logging Tool
https://technet.microsoft.com/en-us/library/gg558599.aspx

On the server, a successful request will include the incoming GetLocationsRequest, the location match, and the GetLocationsResponse:

TL_INFO(TF_COMPONENT) [0]1258.0F98::03/09/2011-14:50:44.182.00000099 (LocationInformationService,LIService.BeginGetLocations:liservice.svc.cs(48))[2080871709]GetLocationsRequest:[
sip:administrator@fourthcoffee.com
0
00-15-5d-fc-c4-2a
192.168.0.0
192.168.0.101
]
TL_INFO(TF_COMPONENT) [0]1258.0F98::03/09/2011-14:50:44.229.000000ae (LocationInformationService,LocationInformationWrapper.FindLocationBySubnet:liservice.svc.cs(484))[2080871709]Location match found for Subnet: Entity:[sip:administrator@fourthcoffee.com] Subnet:[192.168.0.0]
TL_INFO(TF_COMPONENT) [0]1258.0F98::03/09/2011-14:50:44.308.000000c7 (LocationInformationService,LIService.EndGetLocations:liservice.svc.cs(61))[2080871709]GetLocationsResponse:[200
FR
Paris
Avenue du Maréchal Juin
13-15
Quartier Général
Fourth Coffee
75001
true
Manual
2011-03-09T14:50:44.241723Z
]

On the client, the location retrieval is also visible in the decrypted Communicator.etl file:

[soaptransport] 0x006D1EB8after HttpSendRequest. status=076503F8, statusCode=200, errorCode=0, hr=0
[other] 0x05BFF20CCSoapTransport::ExecuteSoapOperation:: 3/7/2011 at 17:50:50.
SOAP request=POST /locationinformation/liservice.svc/WebTicket_Bearer HTTP/1.1
Accept: text/xml, application/soap+xml, application/octet-stream
SOAPAction: "LIService/GetLocations"
Cache-Control: no-cache, no-store
Content-Type: text/xml; charset=utf-8
Pragma: no-cache
User-Agent: OC/4.0.7577.108 (Microsoft Lync 2010)
Host: uswa-ucfe1.fourthcoffee.corp
Content-Length: 4315

Connection: Keep-Alive
SOAP response=HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 2.0.50727
X-MS-Server-Fqdn: USWA-UCFE1.fourthcoffee.corp
X-Powered-By: ASP.NET
Date: Mon, 07 Mar 2011 15:50:49 GMT
Content-Length: 1186
[0]0118.0AE0::03/07/2011-15:50:50.586 [soaptransport]0x006D1EB8response OK. status=076503F8
[0]0118.0AE0::03/07/2011-15:50:50.586 [webrequest]0x05099F10after SendSoapRequest. hr=0x0, url=https://uswa-ucfe1.fourthcoffee.corp/locationinformation/liservice.svc/WebTicket_Bearer.
[0]0118.0AE0::03/07/2011-15:50:50.586 [soaptransport]0x006D1EB8hSoapHandle=076503F8, headerInfo=05099FB8
[0]0118.0AE0::03/07/2011-15:50:50.586 [soaptransport]0x006D1EB8hSoapHandle=076503F8, credentialsInfo=05099F20
[0]0118.0AE0::03/07/2011-15:50:50.586 [soaptransport]0x076503F8status=076503F8
[0]0118.0AE0::03/07/2011-15:50:50.586 [webrequest]0x074A2EE8WebRequest successfully completed, hr=0x0
...
[0]0118.0684::03/07/2011-15:50:50.586 [oc]0x0023F4E0CLocationManager::SetCurrentLocation - exit
[0]0118.0684::03/07/2011-15:50:50.586 [oc]0x0023F52CCMyPane::OnEvent - exit
[0]0118.0684::03/07/2011-15:50:50.586 [dgcache]0x006F0500IConfigurationEvent. type=0, dataSource=9
[0]0118.0684::03/07/2011-15:50:50.586 [nt]0x00000000Updating localized location

If the mapping between a port, subnet, switch or wireless access point and the physical address is not defined, the HTTP request fails with the 404 error code.