So, what is a client exactly? Typically, this is going to be either a Lync enabled phone or the Lync software client running on your PC/Mac. But this could also be an Attendant console or something like a registered video conferencing endpoint. With the new Mobility functionality, this list grows dramatically with the inclusion of Blackberry, Windows Phone, iPhone/iPad and Android devices.
Why is this important? Firstly, because Lync is relatively new, there are a lot of changes and updates to the client software. By reviewing the version information of the clients connecting, you can quickly see which ones are out of date and need patching. I also find it useful to understand the uptake of certain initiatives, such as Mobility.
The Lync monitoring role does provide some insight into the client details. Amongst the number of standard reports is the IP Phone Inventory Report. This report is very detailed showing hardware, software and user activity. The only downside is that it is limited to phone agents.
Lync stores all of this information in SQL databases on the local Front End and SBA servers called RTCLocal. So, there is nothing stopping us doing a bit of querying ourselves right? Well, some people have already started doing this. Check out the neat bit of software from Stumper called Find Lync Versions. This utility does a basic SQL query to return the client connection information. It then parses the information against AD and DNS to give you a formatted table of all connected clients, usernames and computer names. For larger environments, this tool becomes a little limited because you need to run separate queries against every server in your environment that has client registrations.
After mobility was released, I wanted to keep an eye on the uptake and offer some personalised training. So it was important to see what devices were being used. At the time I could not find any easy way of reporting on this. So I asked our SQL guys to put something together that we could use to query all servers at the same time and return a list of meaning information. We then added this to the reporting services, along with the other Lync reports on our central SQL server. There is a lot of data in there, so we ended up just including filters for the Username, Server, Client Version Keyword or Client Type. The later is presented as a dropdown list, performing a fixed keyword match on the client version string.
- Mobility (keywords contain “RTCC/”)
- Video Conf (keywords contain “Polycom”)
- Lync Client (keywords contain “UCCAPI/”)
- Lync Phone (keywords contain “CPE/”)
The new report quickly allows us to do thing like "Show all users on Server 1", "Show all phones in the enterprise that are running version x", or "Show all users connecting with iPads" for example. Visibility is a wonderful thing!
Here is the base query code we used.
/ | ||