Weekly IT Newsletter – August 17-21, 2015

Read the rest of this entry

Microsoft releases Remote Server Administration Tools for Windows 10

Remote Server Administration Tools for Windows 10 includes Server Manager, Microsoft Management Console (MMC) snap-ins, consoles, Windows PowerShell cmdlets and providers, and command-line tools for managing roles and features that run on Windows Server Technical Preview.
Remote Server Administration Tools for Windows 10 can be used to manage roles and features that are running on Windows Server Technical Preview, with the following exceptions:

  • DHCP Tools. Dhcpmgmt.msc is not available in this release of RSAT, but equivalent Windows PowerShell cmdlets are available.
  • IP Address Management (IPAM) Tools. IPAM tools are not available in this release of RSAT.
  • Network Policy Server Tools. The NPS console is not supported on a Windows client-based operating system, and will be removed from future releases of RSAT.
  • Routing and Remote Access Tools. Routing and Remote Access Tools that are GUI-based cannot be used for remote configuration in this release of RSAT, but the equivalent Windows PowerShell cmdlets are available.

Weekly IT Newsletter – August 10-14, 2015

Read the rest of this entry

How to build a custom report for Lync/Skype for Business

Recently I’ve dealt a lot with building SQL queries for Lync/Skype for Business for different purposes, such as queries for: Calls Duration, Network type usages, Amount of poor calls per site etc..

One of the requirements that seems to keep repeating itself is if it is possible to have the same query build into a custom report in which can later be translated into a scheduled email or exported to different formats.

The short answer is YES! it is possible and even relatively easy to create.

Building the Query

The first step before creating the report is to have the right query. I’m usually taking a lot of ideas out of the CQM queries and also from looking into the existing Views for LcsCDR and QOEMetrics databases which contain a whole lot of information that can be used.

For the example below I’ve created a custom query that provide a list of top callers based on a given week from the QoEMetrics database.

The query has some built-in filters to remove any numbers or synthetic transaction users and display only active users with Lync accounts in the callers list

    --CONVERT(date,s.StartTime) AS CallDate
    CallerUser.URI AS CallerUri
    --,COUNT(CallerUser.URI) AS NumberOfPoorCalls
    ,COUNT(DISTINCT s.StartTime) AS NumberOfPoorCalls

FROM [Session] s WITH (NOLOCK)
        m.ConferenceDateTime = s.ConferenceDateTime
        AND m.SessionSeq = s.SessionSeq            
    INNER JOIN [AudioStream] AS a WITH (NOLOCK) ON
        a.MediaLineLabel = m.MediaLineLabel    
        and a.ConferenceDateTime = m.ConferenceDateTime 
        and a.SessionSeq = m.SessionSeq
    INNER JOIN [User] AS CallerUser WITH (NOLOCK) ON
        CallerUser.UserKey = s.CallerURI
    INNER JOIN [User] AS CalleeUser WITH (NOLOCK) ON
        CalleeUser.UserKey = s.CalleeURI
    LEFT JOIN [NetworkConnectionDetail] AS CallerNcd WITH (NOLOCK) ON 
        CallerNcd.NetworkConnectionDetailKey = m.CallerNetworkConnectionType 
    LEFT JOIN [NetworkConnectionDetail] AS CalleeNcd WITH (NOLOCK) ON 
        CalleeNcd.NetworkConnectionDetailKey = m.CalleeNetworkConnectionType
    LEFT JOIN [Endpoint] AS CallerEndpoint 
                  ON s.CallerEndpoint = CallerEndpoint.EndpointKey 
    LEFT JOIN [Endpoint] AS CalleeEndpoint 
              ON s.CalleeEndpoint = CalleeEndpoint.EndpointKey 
    LEFT JOIN [Device] AS CallerCaptureDevice 
              ON m.CallerCaptureDev = CallerCaptureDevice.DeviceKey 
    LEFT JOIN [Device] AS CallerRenderDevice 
              ON m.CallerRenderDev = CallerRenderDevice.DeviceKey 
    LEFT JOIN [Device] AS CalleeCaptureDevice 
              ON m.CalleeCaptureDev = CalleeCaptureDevice.DeviceKey 
    LEFT JOIN [Device] AS CalleeRenderDevice 
              ON m.CalleeRenderDev = CalleeRenderDevice.DeviceKey 
    s.StartTime >= (@beginTime) and s.StartTime < (@endTime)
    and CallerUser.URI not like '%[0-9]%'
    and CallerUser.URI not like '%anonymous%'
    and CallerUser.URI not like '%lyncst%'

GROUP BY CallerUser.URI, CONVERT (date,s.StartTime)
ORDER  BY NumberOfPoorCalls DESC

Creating the Custom Report

Once we have the Query, we are ready to build our custom report.

1) Open the SQL Reporting URL base, by default it is under the http://ReportServerName/Reports (the actual location can be taken from the Reporting Service Configuration tool).


2) Under the given menu, choose “Report Builder” option which will download the Microsoft Report builder tool and install it on your computer.

3) Once the Report Builder tool is opened, you will prompt for a wizard, choose Blank to create your own custom based report.


4) Now we need to insert our SQL query into the report, to do so, open the navigation pane, expand Dataset and choose “Add Dataset”:


5) Within the Dataset Properties windows, select “Use a dataset embedded in my report”.


6) On the Data source, click on “New” in order to select the existing data source which were created as part of the Lync/SfB reports installation. You can also change the name of the Data Source to indicated to which DB it connects to in case you need to use it for more dataset later on.
For our example we’ll use the QMSDB which contain the SQL view the query is based upon.


7) Once selected, paste the SQL query in the “Query” section and Click “OK”.


8) Upon creating the Dataset, the Reporting Builder tool will automatically translate the query into actual Fields and Parameters.


9) Those Parameters are the variables the user can put as Input when the report is being loaded as can seen in the below example:


10) Please note that we also need to modify the settings for the parameters to match the type of “Data type” they are used for, for instance date/Time, number etc.
This can be done by right click the parameter and selecting “Properties”.


11) It is also possible to set Default value when the report first loads, to generate expressions such as today date, or set the begin time to be set initially to last week.



12) Once we have the dataset and all parameters configured, we need to start creating the actual report. On the Insert tab, select Table and choose “Table Wizard”. The table wizard is a really nice guided design which help at first creating the report in a convenient view.


13) On the “Choose a dataset” window, select the existing dataset which we created earlier as the source:


14) On the “Arrange Fields” window, select the required column and details you would like to view. In our example and based on the Query, I would like to get a column for the actual caller URI and another column for the total amount of calls that person had within the given date/time range.


15) On the “Choose the layout” window, select the required layout and style for the report and click on “Finish”.



16) Upon completion of the table wizard, the report is ready and the required table will populate on the design menu.
You can also customize the report in terms of fonts, color and anything else you can think of.


17) Now click on the “Run” button on the top left navigation menu in order to run the report and specify the required parameters needed and click on the “Run Report” button.


18) Once the query finishes to calculate the results, the table will appear with the results of the query.


19) Now all left is saving the report to the actual repository and it will be accessible to all.


20) To modify an existing report, open the “Report_Content” web URL, hoover over one of the report and select the drop down arrow. within the drop down menu, select “Edit In Report Builder” to customize any existing or new reports created.



Weekly IT Newsletter – August 3-7, 2015

Read the rest of this entry

Weekly IT Newsletter – July 27-31, 2015

Read the rest of this entry

Microsoft releases an update for the Key Health Indicators for Lync Server 2013 and Skype for Business Server 2015

    An updated version of the Key Health Indicators for Lync Server 2013 and Skype for Business Server 2015. Key Health Indicators (KHI) are Performance Counters with recommended thresholds aimed at revealing problems that can impact the user experience.
    The resources in this download contain the KHI Guide, which outlines the operational process and remediation steps. A sample PowerShell script used to configure KHI Data Collectors. Lastly, the Analysis and Definitions Workbook which can analyze KHI performance data.

  • Version: 1.1
  • File Name: KHI_Resources.zip
  • Date Published: 7/29/2015
  • File Size: 1.2 MB


  • Updated Min\Max columns on Pivots Tab to show Min\Max values instead of Average


Microsoft releases July 2015 update for Lync for Mac 2011 14.1.1 (KB3074981)




How to find all Lync/SfB Subnets which doesn’t match to a relevant site


In Lync and Skype for Business, there is an option to configure sites/subnets under the Network Configuration tab:


The reason for creating those setting is based on 3 major components:

  1. Call Admission Control
  2. Media By Pass
  3. Location Report and Sites Association

As mentioned in Microsoft TechNet Network settings for the advanced Enterprise Voice features in Skype for Business Server, it is very important to configure all the IP subnets properly in order for those 3 features to work as expected:

The IP subnets specified during network configuration on the server must match the format provided by client computers in order to be properly used for media bypass. A Skype for Business client takes its local IP address and masks the IP address with the associated subnet mask. When determining the bypass ID associated with each client, the Registrar will compare the list of IP subnets associated with each network site against the subnet provided by the client for an exact match. For this reason, it is important that subnets entered during network configuration on the server are actual subnets instead of virtual subnets. (If you deploy call admission control, but not media bypass, call admission control will function properly even if you configure virtual subnets.)
For example, if a client signs in on a computer with an IP address of with an IP subnet mask of, Skype for Business will request the bypass ID associated with subnet If the subnet is defined as, although the client belongs to the virtual subnet, the Registrar will not consider this a match because the Registrar is specifically looking for subnet Therefore, it is important that the administrator enters subnets exactly as provided by Skype for Business clients (which are provisioned with subnets during network configuration either statically or by DHCP.)

What does it actually means?

The result of misconfigured subnets can result in CAC rules which does not applies as expected, Media Bypass which does not work for specific sites Per Site Media Bypass was enabled and missing entries from the Location Report which can result in incorrect information or usage stats.

How to find those subnets?

In order to find the subnets which are not related to any sites but do report active calls, I’ve created the following SQL query which uses the QoEMetric database and an existing view which display all relevant data.

The Query pulls all the the calls within the last week (which can be configured) and uses the following assumptions:

  • The Caller Site is reported as NULL (Empty) and there is no association to existing sites/regions
  • The User Agent is a number between 4 and 255 which means it filter out any irrelevant servers or services
  • The Caller is within the Internal network and not using External subnets such as 192.168.x.x or not using EDGE services
  • The Call is an Audio Call (Video and Conferencing is not taking under consideration)


DECLARE @beginTime AS DateTime = '7/6/2015';
DECLARE @endTime   AS DateTime = '7/13/2015';  


  FROM [qoemetrics].[dbo].[AudioStreamDetailView]
  [qoemetrics].[dbo].[AudioStreamDetailView].StartTime >= (@beginTime) 
  AND [qoemetrics].[dbo].[AudioStreamDetailView].StartTime < (@endTime)
  AND ([qoemetrics].[dbo].[AudioStreamDetailView].CallerUserSite is NULL)
  AND [qoemetrics].[dbo].[AudioStreamDetailView].CallerUserAgentType between '4'
 and '255'
  AND ([qoemetrics].[dbo].[AudioStreamDetailView].CallerInside = 1)

The query needs to run against a specific view which is the AudioStreamDetailView under the QoeMetrics database:


The result will be a list of all calls matching the assumptions above and their details:


Once you have the list of all IP/Subnets which calls are being reported from, you can add those specific subnets to the Lync/SfB control panel and see it changes it the location report.

Based on my experience, most of those subnets are usually VPN or Wireless relayed and those can be added once the specific mask is known.

Please note that you can also run the AudioStreamDetailView and get a list of a lot of relevant information that can be used for troubleshooting other scenarios as well.

Source and Links:

Weekly IT Newsletter – July 13-17, 2015

Read the rest of this entry

Microsoft Releases July 2015 update for Lync 2013 (Skype for Business) (KB3054946)


Issues this update fix:

Known Issues:



  • The download page will display this update as for Lync 2013.
  • After you apply this July 14, 2015, update, Lync 2013 will be upgraded to Skype for Business.
    Get the general information about the new experience in Skype for Business.
  • You can still use the Lync client user interface after you apply this update for Lync 2013 (Skype for Business).
    Get the general information about how to switch between the Skype for Business and the Lync client user interfaces for Microsoft Office 365 users and Lync Server 2013 users.

Lync client call Ignore option result in fast-busy signal for incoming calls coming from Cisco

One of our customers had established recently a direct SIP connection between its Lync 2013 environment and Cisco UCS for VoIP call.

The integration itself worked well and Lync clients were able to make outbound calls and receive incoming calls from Cisco and vice versa.

With that said, there was one scenario in which if a Lync client received an incoming call from Cisco, if the Lync user click on the IGNORE option as shown below, the call will result in Fast-Busy signal if the default voice mail system is not Exchange Unified Messaging.


The default behavior for those type of calls it is to go to the destination user Voice Mail, but that only happens if the its voice mail system is Exchange Unified Messaging.

For customers who are not using Exchange Unified Messaging and decided to continue working with their existing Voice Mail System (Unity or Asterisk for instance), the caller will result in having a Fast-Busy signal instead of redirect to the user Voice mail which is not the expected behavior.

MSPL for Help

In order to change that behavior, we’ve developed a MSPL Service script which reside on the Front-End server and listen for any incoming calls which include SIP 603 Decline in the header, which is the result of a user clicking on the IGNORE button.

603 Decline – The callee’s machine was successfully contacted but the user explicitly does not wish to or cannot participate.  The response MAY indicate a better time to call in the Retry-After header field.  This status response is returned only if the client knows that no other end point will answer the request.

With the help of the MSPL service, we’ve set our script to change any SIP 603 Decline and return 480 Temporary Unavailable instead, meaning that when a Lync user click on the IGNORE option on his side, the Front-End service will return the Cisco GW with a 480 Temporary Unavailable instead of 603 Decline which will result in continuous ringing on the Cisco side which will lead to the Cisco Voice Mail system and the expected behavior by the user.


How to pull Exchange Online Unified Messaging Reports

One of the options exists within Exchange Online is the ability to pull out unified messaging reports and statistics on Voice Mails, Auto Attendant and other usages of Unified Messaging.

The information provided by the Exchange Online can be very useful for trending analysis, user adoption, usage and troubleshooting quality issues between the On-Premises networks and Exchange Online, especially as there is not a lot of information we can gather from the Exchange Online side which makes it very difficult to troubleshooting issues with failing or dropped UM calls.

Type of Reports:

Exchange Online provide two types of Unified Messaging Statistics reports:

  • Calls Statistics – This report provides statistical information about the calls forwarded to or placed by Mailbox servers for your organization.
  • User Calls Logs – This report provides call logs for a selected user for the last 90 days.

Pulling the information:

1. Log-in into the Office 365 Admin Portal using a Global Administrator Credentials.

2. Enter the Exchange Online Control Panel


3. Enter the Unified Messaging Section


4. Within the UM dial plans page, click the three dots icon image on the action tab in order to present the menu of the Unified Messaging Statistics:


Calls Statistics

The Calls Statistics report will present a list of amount of calls on a daily basis, including Amount of Calls, Types of calls (Voice Mail / Auto Attendant / Faxes etc.) as well as audio quality graph.


There are also two additional options to look into the Audio Quality Details and export the daily information into CSV which provide further details on the specific calls including Origin, destination, Menu selection etc.



User Call Log

The User Call Log report will allow you to list all the calls details per user and provide Voice Quality summary which contain network statistics:



Mandie's Memos

Learning about Lync and other technologies the hard way... so you don't have to.

Mastering Lync

Yet another Lync blog but this one by Masters & MVP's

UC Geek

Guy Bachar's IT blog

Jeff Schertz's Blog

Guy Bachar's IT blog

UC Sorted

Skype for Business Blog

Mark Vale's Blog

Skype for Business and more


All about messaging (and maybe some other stuff too).

Rune's blog about things I see and UC

Mainly technical stuff from my job as a UC consultant

Jaap Wesselius

Microsoft UC Specialist

Skype Blogs

Product News, Customer Stories and updates from Skype

Thoughts From a Bot Named Flinch

..state of the art destructive technology as applied to myself..

UC Lobby

Unified Communications for all


System Center and IT Operations

Things about System Center and Cloud...

Michael S. Collier's Blog

Microsoft development, Azure and more fun stuff!

IT based Communications

a different Unified Communications site

Universal Communications, My experiences.

Skype4B, Lync & Exchange Technical


Enterprse Voice tips and scrips

Steve Goodman's Exchange & Office 365 Blog

The weblog of an Microsoft MVP and IT Pro specialising in Exchange, Lync, Office 365. Guides, Tutorials, How-Tos and commentary.

The Little Things

It's always the little things that get you in IT


Get every new post delivered to your Inbox.

Join 279 other followers