Wallboard noun
: a screen or web page designed to be shown on a tv/display mounted in a call center. It provides real time stats that are easily view-able.
The Background
My company has never had a real wallboard – we’ve shown the built in UCCX real time statistics page on a projector in the past, but it’s always been a low rent affair. So, as part of a new new system install, I was asked to integrate with the site’s wallboard. It turns out that their wallboard was just a plasma TV displaying some queue and agent stats. I think we can do this.
So, I began researching free wallboards that would work with my Unified Cisco Contact Center Express (UCCX) call center. There are a number available, including a nice one from Tenox, as well as the Free of charge Wallboard 2.4. I liked the Free of charge Wallboard, but it was broken for UCCX 8, and had a pretty dated look, so I decided to update this wallboard, making it compatible with UCCX 8 and up, as well as giving it a significant face-lift.
A new free UCCX wallboard is born
On to the good stuff, a description of this free to use Cisco call center wallboard. Let’s start with some of the screenshots of what the system looks like:
You can show multiple CSQs (customer service queues) on one screen
Or you can focus on only one CSQ
You can also show summary CSQ data
About the UCGuru.com Wallboard
This wallboard is free to use. As mentioned before, I am not the original author, however I’ve done a number of updates and modifications to the script, and think it looks and works quite nicely. Some key features:
- It’s free!
- All configuration data is stored in a single commented file – it’s easy to see what need to be changed.
- Updated style – most styling (the look and size of elements) is stored in a css stylesheet.
- Works with UCCX 8 – 10 – this is reason enough to use this script (in my book)
What is shown on the display:
- Logged in Agents
- Available Agents
- Talking Agents
- Calls in Queue
- Calls Handled
- Total Calls
- Calls Abandoned
- Current Wait Time
- Longest Wait Time
What do the different colors mean (gray / yellow / red)
- grey – if you have available agents then the row containing your queue will show as grey
- yellow – If you currently have no available agents (no one logged in, everyone talking, etc) the row will turn yellow
- red – calls are holding in the queue for an agent to become available.
Installation
The overall idea is that you will have a windows server that will connect via an odbc connection to your UCCX server. To view the wallboard, a client pc or wallboard machine will simply view the windows server default website.
Here’s how I did it:
- Create a windows server (I used a virtual machine). I found it easier to use the 32 bit version of windows, since UCCX will only use the 32 bit Informix drivers.
- Install IIS on the Windows server, and include ASP. Once installed, go to the IP of your Windows server and make sure that you see the default IIS website.
- Download and and extract the UCGuru.com Wallboard (link at the bottom of this article). Put these files in the default directory of your IIS install (usually C:\inetpub\wwwroot).
- On your UCCX server, you’ll need to know the uccxwallboard user password. I had no idea, so needed to reset this. Just go to Tools -> Password Mangement and change the password for the Wallboard User. Do not use Special Characters like &!”$£, as it won’t work. You’ll need to do this (and make the passwords match) on both servers if you have an HA cluster. Note about wallboard users – Cisco specifically recommends not using the uccxhruser, as it can cause high CPU utilization, so to stay on their good side, we’ll use the wallboard users and forego any agent data.
- Also on your UCCX server, go to Tools > Real Time Snapshot Config and enable the “Data Writing Enable”, “ICD CSQs Summary”, “ICD System Summary”, and set the Data writing to whatever you like.
- Now you’ll need to download and install the IBM Informix database drivers. You can find them here: ciscounitytools.com. I used the 4.10 version. Please note the extra hoops you’ll need to jump through to install this on Windows 64bit. I installed all features except the OpenAdmin Tool
- Now it’s time to configure the ODBC connection on your windows box.
- Launch the ODBC Datasource Administrator (Start -> Administrative Tools -> Data Sources (ODBC)
- Click the System DSN tab
- hit ADD
- Choose IBM Informix ODBC Driver
- Finish
- For Datasource name enter UCCX (you could pick anything you’d like)
- on the connection tab, enter the following
- Server Name – the name of your server with _uccx appended
- Convert all uppercase characters to lowercase characters
- Replace all hyphens with underscores
- If the host name starts with a number, add the prefix i
- Append _uccx to the server name
- For example, if your host name is 123-UCCX-1, your instance name will be i123_uccx_1_uccx
- Host Name – enter the DNS host name of your UCCX server (make sure the Windows server can ping this box – if not then you may need to add an entry in your hosts file for the name resolution).
- Service – 1504
- Protocol – onsoctop
- Database Name – db_cra
- User Id – uccxwallboard
- Password – the password from step 5
- Server Name – the name of your server with _uccx appended
- Click the apply button
- On the Environment tab set the Client and Database locales to en_US.UTF8
- You should now be able to go back to the connection tab and hit “apply & test connection”, and have the test succeed.
- Finally, we’ll need to edit the parameters.cfg file that is currently in the wwwroot folder.
Configuring the parameters.cfg file
There are a ton of options in the parameters.cfg file, but luckily, there aren’t too many that have to be changed. The file is well commented, so you should be able to figure it out. Here are the highlights:
- ServerURL = the url to your windows server that hosts your file. include the full url with trailing /
- DBsource = the IP address of your primary UCCX server
- DBServer = the Server Name of your UCCX server from step 7.1 above
- DBuserID and DBpass = the credentials for your wallboard user.
- DSN = the name of your DSN connection from step 6 above
- OnlyOneQueue = if you have only 1 CSQ then set this to 1. this will cause the page to display taller, but will only show one CSQ
That should get you started. You’ll notice that there is a good bit of coding in the script for agent data and stats. It is not possible to use this to pull agent stats using the uccxwallboard user. if you want to go against Cisco recommendations and use the uccxhruser, you can change the DisplayAgentsStatsTrue to 1, and pull information about agents. I don’t do this on my production server.
Required files (you only need the latest version):
UCGuru Wallboard v1.42
Agent status using the Finesse desktop by Lucas Marcel
Lucas added some code to show the status of individual agents without using the unsupported uccxhruser. This only works if you are using the finesse desktop and uses the ‘User – Get List‘ (https://developer.cisco.com/site/finesse/docs/#userget-list) finesse API which returns the current state of the agents in a XML file. It won’t give you user stats so it’s not a replacement for using uccxhruser.
Test that the API is working for you by browsing to:
http://:8082/finesse/api/Users
or
https://:8445/finesse/api/Users
Below is the code added to generate a basic table with two columns: Agent (showing the agent first and last name) and State (shows READY, NOT_READY, TALKING, etc.). I am filtering on the team name to show only a subset of agents. You will need to replace “https://nctdgao-cuccx1:8445/finesse/api/Users/”, “admin_user”, and “admin_password” with what makes sense in your environment.
Dim objRequest, objXMLDoc, objXmlUsers Dim user, user_property Dim node_firstname, node_lastname, node_state Set objRequest = Server.createobject("MSXML2.ServerXMLHTTP") With objRequest .SetOption 2, objRequest.GetOption(2) - SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS .open "GET", "https://nctdgao-cuccx1:8445/finesse/api/Users/", false, "admin_user", "admin_password" .send("") End With Set objXMLDoc = Server.createobject("MSXML2.DOMDocument") objXMLDoc.Load(objRequest.ResponseXML) Set objXmlUsers = objXMLDoc.getElementsByTagName("User") Response.Write("AgentState") For Each user In objXmlUsers For Each user_property In user.ChildNodes If (StrComp(user_property.nodeName,"teamName") = 0) AND (StrComp(user_property.text, "name_of_your_team") = 0) Then Set node_firstname = user_property.parentNode.getElementsByTagName("firstName") Set node_lastname = user_property.parentNode.getElementsByTagName("lastName") Set node_state = user_property.parentNode.getElementsByTagName("state") Response.Write("" & node_firstname.item(0).Text & " " & node_lastname.item(0).Text & "" & node_state.item(0).Text & "") End If Next Next Response.Write("")
Support
Looking for support? Please go to the UC Guru support forum
Hi i was able to make the Wallboard work. I wanted to see the summary of CSQ data for all CSQ which are part of single team. How do we do this.
Hello,
We’re using this wallboard and I’m wondering if someone can help me with a problem I’m having.
We’re running UCCX 10.6
The CSQ wallboard is stuck at the date 4/5/2018 – stats not updating, however, the real-time stats on the UCCX are correct and the ICD (system summary) stats are correctly shown on the wallboard.
Does anyone have an idea of what could be causing this? UCCX was rebooted, Wallboard server was rebooted, still the same issue.
setup Secondary to takeover for versions 8, 9, 10 in the default file make changes listed below (make sure to remove the section that’s already there:
##First Append
##Under the following command section;
Sub DisplayAgentStatistics
Set objCN = Server.CreateObject(“ADODB.Connection”)
## I added this;
If IPCCversion = 8 Then
If PullAgentStatsFromSecondary = 1 Then
objCN.Open “Dsn=”& DSNSecondary &”; Host= ” & DBsourceSecondary & “; Server= “& DBServerSecondary & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
Else
objCN.Open “Dsn=”& DSN &”; Host= ” & DBsource & “; Server= “& DBServer & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
End if
ElseIf IPCCversion = 9 Then
If PullAgentStatsFromSecondary = 1 Then
objCN.Open “Dsn=”& DSNSecondary &”; Host= ” & DBsourceSecondary & “; Server= “& DBServerSecondary & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
Else
objCN.Open “Dsn=”& DSN &”; Host= ” & DBsource & “; Server= “& DBServer & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
End if
ElseIf IPCCversion = 10 Then
If PullAgentStatsFromSecondary = 1 Then
objCN.Open “Dsn=”& DSNSecondary &”; Host= ” & DBsourceSecondary & “; Server= “& DBServerSecondary & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
Else
objCN.Open “Dsn=”& DSN &”; Host= ” & DBsource & “; Server= “& DBServer & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
End if
Else
Response.Write “The database connection is not configured correctly. Please update the IPCCversion variable in parameters.cfg.IPCCversion is currently set to: ” & IPCCversion & ” Acceptable values are 3, 4, 8, 9, or 10″
End If
##Second Append and remove section that’s already there.
##Under the following command section;
Sub DisplayCSQStatistics
Set objCN = Server.CreateObject(“ADODB.Connection”)
## I added this;
If IPCCversion = 8 Then
If PullAgentStatsFromSecondary = 1 Then
objCN.Open “Dsn=”& DSNSecondary &”; Host= ” & DBsourceSecondary & “; Server= “& DBServerSecondary & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
Else
objCN.Open “Dsn=”& DSN &”; Host= ” & DBsource & “; Server= “& DBServer & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
End if
ElseIf IPCCversion = 9 Then
If PullAgentStatsFromSecondary = 1 Then
objCN.Open “Dsn=”& DSNSecondary &”; Host= ” & DBsourceSecondary & “; Server= “& DBServerSecondary & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
Else
objCN.Open “Dsn=”& DSN &”; Host= ” & DBsource & “; Server= “& DBServer & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
End if
ElseIf IPCCversion = 10 Then
If PullAgentStatsFromSecondary = 1 Then
objCN.Open “Dsn=”& DSNSecondary &”; Host= ” & DBsourceSecondary & “; Server= “& DBServerSecondary & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
Else
objCN.Open “Dsn=”& DSN &”; Host= ” & DBsource & “; Server= “& DBServer & “; Service=1504; Protocol=onsoctcp; Database= ” & DBdatabase & “; Uid= ” & DBuserID & “; Pwd= ” & DBpass
End if
Else
Response.Write “The database connection is not configured correctly. Please update the IPCCversion variable in parameters.cfg.IPCCversion is currently set to: ” & IPCCversion & ” Acceptable values are 8, 9, or 10″
End If
I am having issues getting the stats. I was able to get the ODBC and site to connect to the UCCX database but the stats are showing “0”. I am running on Windows server 2016. I was also looking for the 64bit version of Infomix if someone could link it. Thanks.
Forgot to add that I am running UCCX 11.5.1.
Wrote this simple powershell Script to scrape the wallboard and email managers. This became a necessary when we had a person covering our weekend call center and they walked out.
## 01-04-2018
## Script to email managers when no agents logged into the first CSQ listed on Wallboard app
## To add additional rows copy/past three lines change NoAgent string and add 9 to csqColumnData number
## Chris Zetah
$smtp = “10.x.x.x”
$to = “chrisz@emailaddress.com”
$from = “chrisz@emailaddress.com”
$sub1 = “No Agents Logged In”
$body1 = “Alert: Their are no agents currently logged into”
$uri = “http://10.2.4.31/default.asp?Stats=CSQ”
$html = Invoke-WebRequest -Uri $uri
##Row 1 on Wallboard
$NoAgent1 = ($html.ParsedHtml.getElementsByClassName(“csqColumnData”)[0] | select -expand innertext)
If ($NoAgent1 -lt 13) {Send-MailMessage -To $to -From $from -Subject $sub1 -Body “$body1 Sales CSQ” -BodyAsHtml -SmtpServer $smtp}
##Row 2 on Wallboard
$NoAgent2 = ($html.ParsedHtml.getElementsByClassName(“csqColumnData”)[11] | select -expand innertext)
If ($NoAgent2 -lt 1) {Send-MailMessage -To $to -From $from -Subject $sub1 -Body “$body1 CS CSQ” -BodyAsHtml -SmtpServer $smtp}
Thank you for this – it’s something really useful that I wouldn’t have though to add.
Has anyone tried to setup a script to email and alert supervisors when no agent is logged in? The Wallboard works great for me but I’d like to send managers an email on the weekend when agents walk out. I’ve been playing with Invoke-WebRequest in powershell but all data is parsed in default.asp. I know this is easily done within scripts with premium and enhanced licensing but I would like to find a work around for UCCX.
So, this is new territory for me and I’m no developer. However, this looked pretty straight forward, so I thought I’d give it a shot. I think I’m almost there, but just missing something simple and obvious.
I have my software downloaded, I’ve created a successful ODBC connection from my server that will display the Wallboard. I have IIS running on that same server. I’ve modified my parameters.cfg file.
When I browse to my URL, I receive:
500 Internal server error – There is a problem with the resource you are looking for, and it cannot be displayed.
After my URL, it shows:
default.asp?Stats=CSQ
What am I missing?
Check that you have asp installed as well as asp classic in iis, and make a test asp page and see if that works. I think your problem lies in the initial server config.
Thanks for that info. Under my Wallboard Server’s IIS config, ASP and ASP 4.5 are enabled, but ASP 3.5 was not. I went ahead and enabled 3.5, but that did not resolve the issue.
One other item worth noting is that when I browse to the URL via localhost on the actual Wallboard server, I don’t receive the 500 internal server error, but rather a black screen, as if it’s trying to display something, and there’s a small link, labeled “here” and it’s a link to msn.com, (no idea why).
Probably a silly question, but do I need to only have classic ASP enabled and not 3.5 and 4.5?
….additionally, I probably should have mentioned that I’m running version 11.5. With that, is 1.42 compatible with 11.5?
Anyone have any idea with this?
It fails with either my customized parameters.cfg, or if I try the original, default parameters.cfg.
I have this on a Windows 2012 Server (Datacenter). I have disabled all ASP, except for the classic version.
My ODBC connection to the db_cra UCCX database is connecting successfully.
Are you sure that you have updated the parameters correctly in the Parameters.cfg file? also, is you’re web server running on the server?
what was your resolution for the black screen issue?
Hi Tim,
Were you able to resolve this? I am facing the same issue, Running UCCX 11.5 and trying to get Wallboard running on Windows 2016. ODBC installed and connected successfully but when launching the site, it just comes up with a black screen with a blue click here which redirects to MS asp page.
Would appreciate if anyone could guide on how to get this fixed.
Many Thanks,
Rob
Hello Everyone.
I am doing a complete rewrite and about 90% complete of a wallboard. It uses only API’s along with jquery. This doesnt require a connection to the informix database, so no installation and works only with the Finesse Desktop (that I am aware of). I have UCCX 10.6 and works good. The only thing with 10.X it doesn’t allow cross-origin domain. IE will need to be setup to allow CORS on the Domain side, not public side (will have instructions), Chrome and Firefox requires CORS plugin. UCCX 11.6 they allow CORS so this is not a issue. I will have instructions as well on configuring as I don’t know how to make it modular with a separate config file, but it will still be easy to configure.
Let me know what you all think and I will see if the Author will want to post it here when completed along with screen shots. I started out using GURU Wallboard and wanted to give back to the users and away from using the UCCXHRUSER for agents. This will display agents states and even reason why not ready and no, none of the code is stolen as it is completely built from ground up.
Would love to see this…
i have windows 10 64 bit and i installed sdk 4.10 and thats connection with uccx is successfuly but when i open wallboard in my browser it shows this error please help me.
An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click here to find out more about this error.
This is the same issue that I am having. I have tried this on a Windows 2012 server, and have now tried it on a Windows 7 machine. Both give the same error and the same error you are receiving. I am running UCCX 11.5.
I have another thread where I asked about this a couple days ago, but I have not heard back yet.
I really hope to get this figured out as this will be a great tool for us.
hi. in my wallboard page is black and that write “here” just.
i followed same you but that doesnt show anything.
what was your resolution for the black screen issue?
I have been using this wallboard for a while now and after my recent upgrade from 11.5 to 11.6 my CSQ wallboard keeps randomly giving me 500 Internal server errors. nothing has changed and my CSQ summary wallboard works without issue (500 errors). both are served from the same IIS server. thoughts?
Hi
Has this been resolved? I am having the same issue at present with 11.5. We cannot work out why it is doing it?
Can you please let me know how you resolved it as we go live with the new phone system next week Friday.
Regards
Rod Begue
Hi
Can anybody help me about this issue, when I try to apply and test connection I get the informantion box:
“”Test connection was NOT sucessful.[Informix][Informix OBDC Driver][Informix]Incorrect password or user uccxhruser@srv-reporting.hipogest.pri[SRV-REPORTING.hipogest.pri] is not known on the database server””
What could be the cause of this?
Great Wallboard.
I need to display the average answer speed. Basically total queue time/ calls handled.
Any pointers on how to do this?
I figured out how to display the summary CSQ stats (ICD Summary). question, is it possible to have the CSQ Summary page change colors at defined caller hold times (like the CSQ pages do)? thanks!
Love this wallboard!
Any pointers on how to display the average wait time?
Would be happy to change this for the longest wait time.
Text got deleted in my previous comment because of formatting.
Insert FQDN before the port number in the API URLs.
Edit the following 2 lines accordingly:
.open "GET", "https://nctdgao-cuccx1:8445/finesse/api/Users/", false, "admin_user", "admin_password"
.send("")
If (StrComp(user_property.nodeName,"teamName") = 0) AND (StrComp(user_property.text, "name_of_your_team") = 0) Then
Thanks for this, it’s working great.
I added some code to show the status of individual agents without using the unsupported uccxhruser.
Instead I used the ‘User – Get List‘ finesse API which returns the current state of the agents in a XML file. It won’t give you user stats so it’s not a replacement for using uccxhruser.
Test that the API is working for you by browsing to:
http://:8082/finesse/api/Users
or
https://:8445/finesse/api/Users
Below is the code I added to generate a basic table with two columns: Agent (showing the agent first and last name) and State (shows READY, NOT_READY, TALKING, etc.). I am filtering on the team name to show only a subset of agents. You will need to replace , , and with what makes sense in your environment.
Dim objRequest, objXMLDoc, objXmlUsers
Dim user, user_property
Dim node_firstname, node_lastname, node_state
Set objRequest = Server.createobject("MSXML2.ServerXMLHTTP")
With objRequest
.SetOption 2, objRequest.GetOption(2) - SXH_SERVER_CERT_IGNORE_ALL_SERVER_ERRORS
.open "GET", "https://nctdgao-cuccx1:8445/finesse/api/Users/", false, "", ""
.send("")
End With
Set objXMLDoc = Server.createobject("MSXML2.DOMDocument")
objXMLDoc.Load(objRequest.ResponseXML)
Set objXmlUsers = objXMLDoc.getElementsByTagName("User")
Response.Write("AgentState")
For Each user In objXmlUsers
For Each user_property In user.ChildNodes
If (StrComp(user_property.nodeName,"teamName") = 0) AND (StrComp(user_property.text, "") = 0) Then
Set node_firstname = user_property.parentNode.getElementsByTagName("firstName")
Set node_lastname = user_property.parentNode.getElementsByTagName("lastName")
Set node_state = user_property.parentNode.getElementsByTagName("state")
Response.Write("" & node_firstname.item(0).Text & " " & node_lastname.item(0).Text & "" & node_state.item(0).Text & "")
End If
Next
Next
Response.Write("")
Hopefully it helps somebody.
Lucas,
Thank you for your contribution. I’ve posted the code you submitted, however I no longer have access to the finesse desktop (I’m back on CAD for the time being). Could you let me know if I’ve missed anything?
Hi Lucas,
I have implemented the WallBaord, it works very well with UCCX 11.5.
Thank you for this work.
On the other hand, I want to implement the XML code to have the agents stats, I saved the file in XML format, and I put it on the browser and I get an error:
” This page contains the following errors:
error on line 1
Below is a rendering of the first error .”
first, how can I integrate this code with the Wallbaord system?
Thank you for your support.
Regards.
Thank you so much! This is awesome as that is all I display with the UCCXHRUSER anyways. Well I am not a web developer. I have to figure this one out, how to get it to work.
Is there a way to display agent state by teams. The plan is to see who is ready, not ready, logged out, for each team in real time.
I looked in the parameters folder and I saw that I can enable it from there, my questions would be where do I locate the UCCX team ID?
Hi
as we have 12 CSQ’s is there anyway of making them display on more than one page rather than having to scroll through them>?
Not built into the script. You’d have to code that yourself.
where is the config option to show the summary CSQ data, I can’t seem to locate it in the config file. also, can the summary CSQ data be filtered by Team? Thanks!
First, make your IIS installation into folders… so you would go to myWebsite.com/Folder1 and myWebsite.com/Folder2, etc… Basically, you are duplicating all the data in each folder. This will allow you to put 4 CSQs in the Folder1 parameters.cfg file, CSQ 5-8 in Folder2’s parameters.cfg file, and so on…
You can display three tabs in your web browser, and just use a simple plugin like RevolverTab which switches from one tab to another every X seconds or so… it will give you all 12… but scrolling through each.
Can you let me know after completing all the steps how do I connect to the wall board, what is the URL?
It will be the url of your Windows / IIS box
Thanks!
Hi, is there any way to show the summary CSQ data for a specific team? Also, where is the config option to show the summary CSQ data, I can’t seem to locate it in the config file. Thanks!
Does this script have any parameters to allow highlighting of individual CELLS based on value, or only the entire row?
Guys this is wonderful. I’ve been reading through all of the comments and the work done is outstanding. Thank you.
I am wondering if there is anyway to manipulate the csqname variable? I would like to move it from the top of the csqwrapper so it is positioned in front instead of the top?
I am no web dev but I’ve been analyzing the code and see no easy way to manipulate the positioning. Any ideas?
Thanks in advance for any time given to this question.
Hi,
I’ve modified the default.asp file and the paparmeters.cfg file to now cater for the scenario of a HA cluster failing over to a secondary server from the primary.
Not sure how to upload the modified files, but I’m happy to make them available if you’d like them. (I say this as the original files included a line or two saying I am allowed to modify them but if I do I should post them here?)
I’d be very interested in this script, could you send it to me?
I have been using this (great) wallboard for a while now but yesterday it suddenly stopped working.
We have a HA UCCX cluster here and we had to restart the engine on the primary so it reverted to the secondary – which stopped the wallboard updating.
I had to change the Const DBsource = value and the Const DBServer = value to the secondary server instead of the primary and it all fired up again.
Is there a way to make this automatic?
You are correct that this is an issue. You can do what you did, and edit the script, or you could fail the cluster back over. There isn’t currently any intelligence in the script to try one node, then the next.
Thanks Terry, that’s what I thought. I’ll have a tinker to see if there is an easy way to adjust the .asp to resolve this. But at a first glance it’s not that straightforward as the DB connection seems to return success, and its just that the data is not updated. So how you distinguish between this case, and the stats just not having changed for a while is going to be tricky.
Unlass anyone has any suggestions?!
Hello, we have been using the wallboard without any problems for a while. We recently upgraded to UCCX 11.0 and it had still been working (or at least noone noticed that it wasn’t!) but now it seems to have lost connection to the database, and when I attempt to reconnect the ODBC connection I get the following error: [Informix][Informix ODBC Driver][Informix]Incorrect password or user uccxwallboard@tcv2013.ourdomain.com[TCV2013.ourdomain.com] is not known on the database server.
TCV2013 is the name of the server it is running on, and it looks to me that this formatting is what is causing the problem. I have tried changing the wallboard user password multiple times with no luck, has anyone run into this problem?
Ok, I was able to get the first issue resolved, but now it does not show anyone as being logged into the queue. The only changes I have made are to the ODBC connection (I just recreated this) and the DBpass in the parameters.cfg file.
Hi
I am having the @servername issue. what was the fix please. I am using UCCX 11.6 and ODBC 4.10
thanks
First and foremost, thanks for developing the wallboard, so much better than trying to use CUIC.
I have looked through the posts and can’t find an answer to my issue.
The [Calls Dequeued] output does not reset to zero each morning.
I have a queue that has the [Calls Dequeued] slowly counting up, day by day and is never reset.
Is there a way to force this to reset when the rest of the values are reset by UCCX?
Any help appreciated
Can you have multiple wallboards showing just that groups stats off the 1 server? If so, what is the secrete?
Sure, this is actually pretty easy. Inside of IIS, simply copy your wallboard folder and duplicate it. Then each team will go to a different url.
yourserver/team1
yourserver/team2
Hello UCGuru,
I have followed your instructions to set up wallboard on CCX 8.5.1SU4, but when i try to access the web url, from another machine, i get 500 Internal Server Error
and when i try to access the IP on the windows server itself. i see a black screen ..
can you please advise, how to resolve this issue ?
Hi Gurus,
I am getting a black screen with the message “An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click here to find out more about this error.
” Please help me understand where did I go wrong. I am a new bee and just wanna configure something for my team.
Hi UCGuru. First of all, thank you for the awesome Wallboard! You rock. I am doing some customization and I have a few of questions. I am by no means a web designer, so I’m stumbling through this. I’m surprised I got it running in the first place. (on a Win2012R2 server)
1. Is there a way to change the CSQ_Container color for the ones that have an Alert status? For instance, when the “ArtNoAgentsAndCallsInQueue” turns red, is there a way to change the CSQ_Container red as well instead of the default CSQ_Container color?
2. It seems when I set the Const DisplaySpecificCSQ to 1 to display specific CSQs, the maximum that shows up is 16. I have 29 CSQs I wish to display.
3. Or even better than displaying 29 CSQs on one page… is there a way to display 6 CSQ’s per page and have the pages shuffle?
I figured out the answer to my #2 question. I found the parameters in the default.asp and added additional lines for the amount of CSQs I have. 🙂 I’ll try to figure out the answers to my other questions but would love input.
I read through all of the comments and found KingRichards solution which is to this and it worked for me!
“I just put them in a second folder/page. For example… IPAddress/Stats, and IPAddress/Stats2
Then I use the Revolver Tabs (in Chrome), to switch between the two tabs.”
Hi all,
thanks for this great Wallboard, it really works well! The only problem I’m facing, on a big TV connected to a rasperry PI(using Chromium), it flash white as soon as the board is being refreshed. Has anyone seen this behaviour? It works fine on older PI’s with different Chromium version.
Many thanks!
Would it be possible to add this in the next version:
If (Current Wait Time > Longest Wait Time) Then (Longest Wait Time = Current Wait Time)
Thats a really good check. I’ll add it if/when I produce a new version.
Recieving “0”‘s in all CSQ fields after upgrading UCCX to version 10. I am using version 1.4 of the wallboard. Any ideas?
Did the IPs or hostnames change?
Did the password to the wallboard user change?
No to both. When checking on the changed password I attempted to change it in the GUI. The GUI tells me the password I attempt to change it to is the same as the old.
Set ipcc version as 10 in the parameters folder and have the following options set as well:
//Choosing which queues to show and setting up pretty names for them
Const OnlyOneQueue = 0 //1 if you only have 1 queue – 0 if you want to display multiple. This will switch between a 9 colum row and a 3 x 3 table
Const DisplaySpecificCSQ = 1 //0 to show all CSQs 1 to show specific queues (you will then have to put the name of each below). CSQs will be displayed in the order entered.
Const usePrettyNamesIfDefined = 1 //if you enter something a pretty name for the queue – should we use it
Const UCCXCSQ1 = “SupportCenter” //Name of your queue – i.e. My_Callcenter_CSQ
Const UCCXCSQ1friendlyName = “Support Center” //friendly name for this queue (that will be displayed in the row title)
Const UCCXCSQ2 = “”
Const UCCXCSQ2friendlyName = “”
Const UCCXCSQ3 = “”
Const UCCXCSQ3friendlyName = “”
Const UCCXCSQ4 = “”
Const UCCXCSQ4friendlyName = “”
Const UCCXCSQ5 = “”
Const UCCXCSQ5friendlyName = “”
Const UCCXCSQ6 = “”
Const UCCXCSQ6friendlyName = “”
Const UCCXCSQ7 = “”
Const UCCXCSQ7friendlyName = “”
Const UCCXCSQ8 = “”
Const UCCXCSQ8friendlyName = “”
Const UCCXCSQ9 = “”
Const UCCXCSQ9friendlyName = “”
Const UCCXCSQ10 = “”
Const UCCXCSQ10friendlyName = “”
Const UCCXCSQ11 = “”
Const UCCXCSQ11friendlyName = “”
Const UCCXCSQ12 = “”
Const UCCXCSQ12friendlyName = “”
Const UCCXCSQ13 = “”
Const UCCXCSQ13friendlyName = “”
Const UCCXCSQ14 = “”
Const UCCXCSQ14friendlyName = “”
Const UCCXCSQ15 = “”
Const UCCXCSQ15friendlyName = “”
//what to show on the page
Const DisplayCSQStatsTrue = 1
Const DisplayCSQloggedInAgents = 1
Const DisplayCSQavailableAgents = 1
Const DisplayCSQtalkingAgents = 1
Const DisplayCSQcallsWaiting = 1
Const DisplayCSQcallsHandled = 1
Const DisplayCSQcallsDequeued = 1 //determines the calls dequeued by (callsDequeued = totalCalls – callsHandled – callsAbandoned)
Const DisplayCSQtotalCalls = 1
Const DisplayCSQcallsAbandoned = 1
Const DisplayCSQlongestWaitCurrent = 1
Const DisplayCSQlongestWaitDuration = 1
Const DisplayOverallStatsTrue = 1
Const DisplayICDTotalCSQs = 1
Const DisplayICDStatsTrue = 0 //show the stats for all CSQs totaled
Const DisplayICDloggedInAgents = 1
Const DisplayICDavailableAgents = 1
Const DisplayICDcallsWaiting = 1
Const DisplayICDcallsHandled = 1
Const DisplayICDtotalCalls = 1
Const DisplayICDcallsAbandoned = 1
Const DisplayICDlongestWaitCurrent = 1
Const DisplayICDlongestWaitDuration = 1
Const intAgentStatsMaxDays = 1
Const intAgentStatsMaxHours = 8
Const intAgentStatsMaxNotReady = 5
Const intCSQStatsMinAgentsAvailable = 1
Const intCSQStatsMaxQueuedCalls = 0
Const TextColor_PageHeader = “Navy”
Const TextColor_TableHeader_CSQStats = “Navy”
Const TextColor_TableHeader_AgentStats = “Navy”
Const TextColor_TableHeader_ICDStats = “Navy”
Const TableColumnHeader_CSQStats_Column1 = “CSQ Name”
Const TableColumnHeader_CSQStats_Column2 = “Logged In Agents”
Const TableColumnHeader_CSQStats_Column3 = “Available Agents”
Const TableColumnHeader_CSQStats_Column4 = “Talking Agents”
Const TableColumnHeader_CSQStats_Column5 = “Calls In Queue”
Const TableColumnHeader_CSQStats_Column6 = “Calls Handled”
Const TableColumnHeader_CSQStats_Column7 = “Total Calls”
Const TableColumnHeader_CSQStats_Column8 = “Calls Abandoned”
Const TableColumnHeader_CSQStats_Column9 = “Current Wait Time”
Const TableColumnHeader_CSQStats_Column10 = “Longest Wait Time”
Const TableColumnHeader_CSQStats_Column11 = “Calls Dequeued”
Const TableColumnHeader_ICDStats_Column1 = “Total CSQs”
Const TableColumnHeader_ICDStats_Column2 = “Logged In Agents”
Const TableColumnHeader_ICDStats_Column3 = “Available Agents”
Const TableColumnHeader_ICDStats_Column4 = “Calls In Queue”
Const TableColumnHeader_ICDStats_Column5 = “Calls Handled”
Const TableColumnHeader_ICDStats_Column6 = “Total Calls”
Const TableColumnHeader_ICDStats_Column7 = “Calls Abandoned”
Const TableColumnHeader_ICDStats_Column8 = “Current Wait Time”
Const TableColumnHeader_ICDStats_Column9 = “Longest Wait Time”
Const TableColor_ICDStats = “White”
Const TextColor_ICDStats = “Green”
Const TableColor_CSQStats_StatusOkay = “White”
Const TableColor_CSQStats_AlertNoAgents = “White”
Const TableColor_CSQStats_AlertCallsInQueue = “White”
Const TableColor_CSQStats_ArtNoAgentsAndCallsInQueue = “White”
Const TextColor_CSQStats_StatusOkay = “#262626”
Const TextColor_CSQStats_AlertNoAgents = “Orange”
Const TextColor_CSQStats_AlertCallsInQueue = “Orange”
Const TextColor_CSQStats_ArtNoAgentsAndCallsInQueue = “Red”
Const TextSize_ICDStats = 5
Const wallboardFooterCredit = 0
FIXED. Had to disable and re-enable real time snapshot on UCCX on all servers in my cluster.
Thanks.
Is there a way to add Reason Codes and time in the Reason Code? If so how?
Not by accessing the standard wallboard user. If you use the unsupported historical reports user then I believe it’s possible.
Thanks. I am having an issue with the URL loading a black screen with the word here underlined. I am running CCX 11.0. I suspect this is an IIS issue but not sure. Any help would be appreciated.
I installed the 64 bit drivers and now the URL will show the default logo, but not showing anything else that is configured.
I have resolved the issue. I had to add DSN for both the 64 and 32 bit.
Where did you find the 64-bit Informix driver? I am having the same black screen issue….I have changed all apppools to spawn in 32-bit mode but still no dice.
Thanks for the information. I am trying to figure out why I am getting the black screen showing. If I highlight I find the words:
An error occurred on the server when processing the URL. Please contact the system administrator.
If you are the system administrator please click here to find out more about
After playing with this for a while I installed the Tenox wallboard using the ODBC connector I made for this and it worked right away.
I read thru the comments today and saw that I would need to allow 32bit applications in IIS7 on my 2008R2 server and I did that but still have the same issue.
I have tried to change as little as possible so that I don’t accidently mess it up. I know I am close and that it is reading the file. Any help would be greatly appreciated.
what was your resolution for the black screen issue?
Our company just migrated to 11.5 version. Since the migration, i changed the uxxwallboard user password and i change the version in the parameter file to version 10. My IIS server connects to the UCCX server, but my wallboard keeps displaying “0” everywhere. Did anyone face the same situation?
I get the wallboard up and running for a few seconds until the page automatically refreshes; the URL changes and causes the page to return a HTTP 404.0-not found.
Any ideas on what might be causing this and how to fix this?
Thanks
Nvm i got it working now (somehow) by adding a new website in IIS.
My question now is whether it is possible to decrease the time delay between when a phone call is placed to when the call is actually displayed in queue. We calculated that it’s takes about 35 seconds to update.
Is it possible to shorten this time? Thanks
Take a look at the install instructions above, specifically step 5.
Then you’ll need to think about how often you refresh the wallboard page. The more often you refresh, the newer the data.
The Wallboard is really GREAT! Thank you very much. Easy setup, config. I would like to run this on a web server for multiple departments to access their individual Call Stats as a wallboard. How would I configure so that each department only viewed their info? Separate folders in the wwwroot folder? Also, is there a way to display agent names and login status on a second page so that Page 1 displays CSQ info and Page 2 displays Agent State?
Separate folders under wwwroot is the way to go. You end up with several “installs” on the same server.
You’d have to do some coding to come up with the agent stuff.
Is there a way to change the offset for standard time on the Agent Statistics page? Currently the “Time in Status” is 1 hour behind…
Having the same issue today after the time change. You ever fix this?
We found the answer to this. Under the “Default” page, we had to edit this part of the code:
‘ calculate the difference between current date/time and date/time of the last event change,
intStatusSeconds = DateDiff(“s”,(EventHappenedDateTime – .20833),CurrentDateTime)
We changed the .20833 to .16666 and it was close enough for us. I am in Detroit MI and we jumped ahead one hour. I assume this has to do something with EPOCH time coming from the Unix database.
I’ve got the wallboard installed on 2012 R2. I only see a black screen with the logo at top left and “UCGuru Wallboard v1.42” at top right. IIS logs look like this:
2016-11-02 13:56:03 10.0.0.225 GET /default.asp Stats=CSQ 443 – 10.139.64.14 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+rv:49.0)+Gecko/20100101+Firefox/49.0 – 200 0 0 62
2016-11-02 13:56:18 10.0.0.225 GET /default.asp Stats=ICD 443 – 10.139.64.14 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+rv:49.0)+Gecko/20100101+Firefox/49.0 – 200 0 0 62
Any thoughts on what the issue may be? Thanks.
Hi,
It’s a great solution. We have multiple queues used by different departments. I want to displace the wall board for a specific queue. So, I guess I need to make “Const OnlyOneQueue” to 1. Where do I specify the number of the queue I want to display?
Regards,
Shayan
Has anyone modified this to show the agent stats on a cisco phone? Any pointers would be appreciated.
Great wallboard, thanks to all for all your advises, experiences and instructions. Had it working in no time following all of your advises. I’ve even been able to work the .asp file to make some minor changes to the layout. Does anyone know if it’s possible to had the average waiting time variable in the wallboard (at least in the ICD section)?
I can’t get this to work after following the guide. I keep getting a 404 file or directory not found (when going to http:///default.asp. I can access the default IIS page when just going to http://localhost. Is the UCGuru folder supposed to be at the root directory of the wwwroot folder?
Create a new document named test.asp and put some text into it. See if you can view that test document in your browser. It sounds like something is wrong with your asp / IIS config.
I didn’t have all the ASP services installed. I was able to create a test.asp page and it works. When I try the default.asp I’ll get a 500 Internal Server error on http://cntv-02wall01/default.asp?Stats=CSQ . If I change the Stats=CallCenterCSQ I’ll get a white page with “UCGuru Wallboard v1.42”.
On the web host server if I do http://localhost/default.asp I’ll get a black page with a “If you are the system admin please click here” link that takes me to a Microsoft ASP site.
Turned on debugging and here is the problem. I am running the 32bit version on Server 2012.
Microsoft OLE DB Provider for ODBC Drivers error ‘80004005’
[Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
/default.asp, line 374
I ran into this as well. for me it turned out to be that the application pool in IIS needed to be enabled to run 32bit apps.
I installed the 64 bit version of the ODBC driver from the IBM website. Started right up!
HI, i can’t find the 64 bit version of the ODBC driver.. do you have the link where you downloaded?
Thanks
I got it from IBM. I did have to register in order to get it but no special requirements for the registration. I can’t remember the exact link because it has been awhile but this may get you started in the right direction.
http://www-01.ibm.com/support/docview.wss?uid=swg27016673
Just a tip for anyone who experiences the same issue as me …
The wallboard would stop at random intervals with the “500 – Internal server error”. It only required a refresh to continue but it would re-occur some time later. The IIS logs showed |442|80020009| at the time of failure.
There is code in the CSQ module that references the SQL result set without first checking for EOF:
If displayPageHeader = 1 Then
Response.Write “”
Response.Write “stats began at ” & objRS(“startdatetime”) & ” EST”
Response.Write “”
I’m not sure why but it appears that the SQL request would sometimes return null and the code would fail at this point. I added “And Not objRS.EOF” in the IF statement and the failure has stopped occurring.
The new IF statement is:
If displayPageHeader = 1 And Not objRS.EOF Then
Or you can just turn off the displayPageHeader in parameters.cfg which will stop this part of the code from executing.
Good luck.
Very cool!
I’ll see about incorporating this into the next version.
It is working here on UCCX 11.0(1).
HI!… do you set the v10 on the parameters.cfg?
Const IPCCversion = “10” //valid options are 3 4 8 9 10
Ran into a weird problem. We were running UCCX 11.0(1) but we were on the 100 agent OVA. We got some licences so over the weekend, I took a backup, deployed the 400 agent OVA, and restored. Nothing else changed, still 11.0(1).
Now, the wallboard stopped working with a “500 – Internal server error”.
I brought up the old 100 agent OVA, and there was total success. The wallboard worked. I brought up the the 400 agent OVA and it fails with the 500 error!
I have narrowed it down thus:
When building the DSN, at the press apply and test step, running the 100 agent it says “Test connection was successful“.
At the same point, running the 400 agent it says “Test connection was not successful. [Informix][Informix ODBC Driver][Informix]Incorrect password or user uccxwallboard@machine.domain.ca is not known on the database server.” (where machine is the name of the pc running the UCGuru wallboard.)
I am baffled and befuddled. The 400 agent version was restored from the backups of the 100 agent.
Oh, and I did check the uccxwallboard password. I set it to the same value it had had and received a message that it was already that value.
Problem solved. There was a Cisco bug, CSCul06940. For some unknown reason, the uccxwallboard password gets changed, and you cannot change it on the Tools>Password Management web page.
This wallboard does work on 11.0(1).
Thanks for this awesome Wallboard! We have been using it for close to a year now. One thing that has been asked, is if we can display an active list of agents that are configured for a particular skill/queue. We do skill based allocation and we have a CSQ that matches the Skill that the agent needs to answer calls in that CSQ. Can we update the ASP and/or Parameters.cfg file to pull Current Agents with a particular skill? Our supervisors are constantly moving agents around in different skills/queues and we was looking to see if there is faster way to have it displayed other than going through UCCX administration. Thanks
Joey
This should be an easy one for you guru’s after reading all 4 pages of thoughts looking….
Have all installed all S/W and dBconnection passes, IIS works but get the black screen that has the ‘server processing URL error / click here more info’ issue that was mentioned a few times here. A couple of solutions has a 32bit fall back fix which I can’t do. The page comes up with ‘My Company Wallboard’ tab so we know its close.
Any suggestions:
UCCX – 10.6
IIS Server – Win7/64
Do I need anything else in the ServerURL line?
<%
//DB and URL settings
Const IPCCversion = "10"
Const ServerURL = "http://10.150.51.90/"
Const DBsource = "10.150.51.230"
Const DBServer = "houesccx01_uccx"
Const DBdatabase = "db_cra"
Const DBuserID = "uccxwallboard"
Const DBpass = "12345"
Const DSN = "UCCX"
Thanks for any help
Sounds like you have not allowed 32 bit applications.
I meant you probably have not allowed 32 bit applications in IIS.
So I have a stupid question.
Where do I find the team ID’s? I can find the name just on the web interface but I have no idea where to look for the number associated with that.
Other then that everything is working great.
Thanks
So what you have to do is change the uccxwallboard username to uccxhruser in the ODBC connection and the parameters.cfg.
Ensure that you know the uccxhruser password, if not reset it in UCCX. This password only affects external wallboards. DO NOT USE SPECIAL CHARACTERS! Then, for the UCCXTeamID will be a number. I have four teams total, the default, and three others. My last team-id is 6. That you may need to play with as it seems the team-id increments by 2 in between the teams.
I hope this is helpful!
The below command will give you what you need.
run uccx sql db_cra select teamid,teamname from team
Example output
TEAMID TEAMNAME
—————
1 Default
10 TEAM-BLAH
11 TEAM-ALPHA
12 TEAM-WHISKEY
13 TEAM-DELTA
14 TEAM-ECHO
15 TEAM-TEST
Just got this up and running, thank you very much for developing this.
We’re trying to change the time when our stats ‘reset’ on the wallboard. Currently it is resetting at 00:01; we would like to be able to set stats to reset at 05:30. Is there an easy way to do this?
The wallboard pulls from a wallboard database on your UCCX server. The reset of the stats happen on the UCCX server – I don’t think there is any way to control when it resets though.