May 03

Response Group Queue monitor

A Dutch UC professional (Frederik Lefevre) has written a couple of blog entries on how to get the Response Group showing queue information… Source: However, he has it covered in multiple entries, with updates on multiple locations, therefore I’m putting it into a single blog entry for you all to use.


This article provides the complete picture on how to create the parts that are in the database and the webservices …

1. Database

  1. On the database server create a database called ‘gngacd’.
  2. Create a Security login which matches your webservername (e.g. DOMAINNAME\COMPUTERNAME$)
  3. Provide that account Sysadmin rights with dbo rights on the GNGACD, RGSCONFIG, RGSDYN, TEMPDB databases.
  4. Create or update the function using Create or Update script using the SQL Server Management Studio, select the database (GNGACD), right click New Query:image
  5. Copy and past the Create or Update script content in the query field and press execute. This creates or updates the required function.

2. Webserver

2nd part is the webserver part. The webserver provides the interface of the requested queue… You can either select a current or create a new webserver with the following IIS parts configured (run these commands in a Administrative Powershell):

Import-Module ServerManager
Add-WindowsFeature Web-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Erros,Web-App-Dev,Web-Asp-Net,Web-Net-Ext,Web-CGI,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Health,Web-http-Logging,Web-Request-Monitor,Web-Security,Web-Filtering,Web-Performance,Web-Stat-Compression,Web-Mgmt-Tools,Web-Mgmt-Console,NET-Framework,NET-Framework-Core

3. Configuration

On the webserver, create directories for any Response Group of which you want to provide the Queue information. The picture below provides an example on a couple of Repsonse Groups.


Download this file and export it to a temporary directory. It contains the following files:


If you are into custom coding you can change the background, layout and all… For now, I’ll leave it out of scope. The most important file is the web.config.

Modify web.config

<add name="[YOUR CONNECTION STRING NAME]" connectionString="Data Source=[YOUR SQL SERVER NAME];Initial Catalog=[YOUR DB NAME];Integrated Security=True" providerName="System.Data.SqlClient" />
< /connectionStrings>

Please replace the following parts:
[YOUR CONNECTION STRING NAME] –> gngacdConnectionString
[YOUR SQL SERVER NAME] –> Your SQL database
[YOUR DB NAME] –> Your SQL Database (e.g. gngacd)

Modify default.aspx

Please modify the lines to your needs. you can do this using a search and replace method or look for the lines yourself. The example below provides a Helpdesk queue. Make sure the Q.Name and Q.[Name] are unique and match your Queue names in the Lync Control Panel as shown below:


<title>Lync Server 2010 RSG Status – Helpdesk</title>
Where Q.Name  Like ‘Helpdesk%’">
Where Q.[Name]  Like ‘Helpdesk%’">
<td class="RSGstatus">Response Group Status: <BR><B>Helpdesk</B></TD>

Once you are done modifying this,copy it to a directory which you’ve created at the start of #3.

On the IIS server, start the IIS Manager and create Virtual Directories as shown below:


4. Finished!

By now, you should be finished and able to view the website. Have fun and if you have any questions, please contact me.

Permanent link to this article:


Skip to comment form

  1. Works really well for all Lync calls to response group, however any external or PSTN calls to response group causes the monitoring page to crash…

    any idea?

    • Jeroen on 21/07/2012 at 05:58

    Perhaps the external numbers aren’t showing the E.164 format (+ numbering). Could you provide me any error or feedback on the error you are getting?
    Any screenshots are welcome.

    • Meitzi on 17/10/2012 at 14:43

    Yes, there is no @ for external calls.

    So here is fix
    SELECT SUBSTRING (R.CallingPartyUri, 5, CHARINDEX (‘@’, R.CallingPartyUri)-5)

    SELECT SUBSTRING (R.CallingPartyUri, 5, CHARINDEX (‘@’, R.CallingPartyUri + ‘@’)-5)

    • Rob Wismans on 02/01/2013 at 09:49

    Hello Jeroen,

    In your manual you do not talk about the rights of the Computeraccount on the RTC database.
    Can you specify which rights the IIS Computeraccount needs on this RTC database?

  2. The SQL permissions are excessive and dangerous. Your application accounts should never be sysadmin and I would be hesitant to make anything DBO on Lync databases! In addition, since you are granting the permissions to the computer account, anything else running under the System or Network Service principals will have access. I created a domain account for the app pool instead, but even if you don’t go that far, you should limit the owner access on those DBs.

    I added in permissions gradually and found the minimum you need to work are DBO on gngacd and then datareader on rgsconfig, rgsdyn, rtc, and rtcdyn.

    • Jeroen on 26/02/2013 at 11:35

    Thank you for your feedback. This blog was to show how you could create the monitoring dashboards. Setting the correct SQL permissions to the exact level was (in my thoughts) too much details. Never the less, great feedback ;-)

    • Frederico Souza on 03/09/2013 at 21:12

    i feel having the following error “Invalid object name ‘rtc.dbo.PublishedCategoryInstanceView.”‘. Has anyone experienced this error?

    • Andres Cruz on 31/10/2013 at 18:20

    I made all step by step and the connection with SQL is ok, but It show 0 calls waiting and don’t show any queue member

    • Andres Cruz on 31/10/2013 at 18:22

    I don’t get any error on the page, just the callers wainting is 0 and the Agents space is clear

    • Andres Cruz on 31/10/2013 at 20:49

    I need this for Lync 2013, the RTC database is local on this new version

    • Jeroen on 21/05/2014 at 14:19

    Sorry, I haven’t done this for 2013

    • Ahmed on 22/04/2015 at 16:39

    Great post. Everything works but , callers waiting is zero. Callers and wait time do not show up in the webpage.
    Can you please guide.

Leave a Reply

Your email address will not be published.