Free of charge wallboard 2.4

It has been a while since I posted my last version of the free of charge wallboard.

Some of you know that I changed jobs since (because my former employer did not like me working on the walboard). Since then I no longer have the option to further develop the script because the current employer is an Avaya shop for telephony.

I keep receiving a lot of request for the files, for unencrypted version, et cetera (and I note that a lot of people never read the full thread, which I have to say that I think that is just lame).

Because so many of you seem to enjoy the wallbaord and have great ideas for add ons and changes, I am posting version 2.4 which is last release I will post here.

The only thing changed from 2.3 to 2.4 is that I removed the encryption.

This will enable the Cisco netpro forum community to further develop this script. Note that the disclaimer file in the archive contains important info about how I would like you to handle the copyright (don't try to make mony from my efforts, unless you are willing to provide me a fair share :-))

Also important to know is that I had no possibility to run a test on this last version so it may contain small errors (shouldn't be the case, but just so you know).

Last but not least, since I have no test bed, I am unable to provide any form of support. So please, don't email me with support questions. If you do need to contact me for whatever other reason please send a mail to l.mourits@caiway.nl

If statements on lines 160 - 180 and 215 - 235 are missing their "then" clauses. I have attached the updated file. Also the CSQ stats aren't displaying properly for me. They show up as just 1 row with the CSQ names with no data. I'm working on correcting that now. Agent stats display fine. When I turn on the option for overall ICD stats nothing happens. Not sure if that's a bug or if the functionality hasn't been built in yet.

I have written an IP Phone service to compliment this wallboard application. The service displays a subset of the information found in the wallboard app and also allows for sending alerts to the phones when certain queue thresholds have been met.

Modified Select Case statment to take QueryString params that can be refereced elsewhere in the script.

(i.e. what was ?CSQstats or ?AgentStats...is now ?Stats=CSQ and ?Stats=Agent)

Added option to hold current displayed page. This option keeps the current page refreshing and prevents the application from moving to the next set of stats (CSQ, Agent, ICD).

"Modularized" the code to make it easier to navigate through, easier to add optional and separate code, and easier to give credit where due. Because i'm not aware of who's responsible for what, all modules that I haven't written have been credited to Leo. If other credit is due it should be added accordingly.

Side note, if this grows much beyond it currently development state I would suggest opening a sourceforge page for it to make it easier to maintain a proper versioning system, and easier for end users to obtain the lastest code, without having to sift through all of the threads on this page.

Jeremy

edit: I disabled the logos in the code and forgot to reenable them before I posted the latest version. If you wish to reenble the logos before the next code update remove the leading ' from lines 140, 259, and 368.

Great job in making it more modular. As said, it allows to provide proper credit. For all modules that where in the existing packet it was indeed me doing all the hard work on writing the code, testing it and making it work. However, in the disclaimer I do give credit to people who helped me big time with some specifics.

sourceforge page? Sounds like a great idea. If freely available I am more then willing to (one of the) moderator(s) of such page.

Now the query contains the reasoncode. However, you will have to translate the codes (small integers) to text to let it make sense on the display. If you wnt to to this neat, find out which table hold the values, make a querie that digs that table one time and loads the text values into local variables (make sure you define variables using dim).

Or, if your lame, like me, do something like this after the line "While Not objRS.EOF":

If objRS("reasonCode") = 1 Then

strReasonCode = "Lunch"

End If

If objRS("reasonCode") = 2 Then

strReasonCode = "End of Day"

End If

and so on

Last but not least, add a column to the table in the html output (I'll leave that up to your imagination).

I've been using a page similar to this for a while. I ran into this thread and found the solution to setting mix mode authentication on the SQL server.(not TAC supported) I've followed the instructions in the .doc file but am getting the following error when I switch to Windows only-

The most likely cause of this error is not changing the IIS guest account to a user that has access to the SQL database. Check the Directory Security properties on your IIS Virtual Website and make sure the account used for anonymous access is your "wallBoardUser" account, or whatever account you created to access your CRSSQL database.

I'm still working on the output formating, I will try to squeeze it all on one page, but even the original wallboard.asp scrolled for me. My company has 40 CSQ's with 80 agents on two separate servers so it's going to be hard to compress the entire page into one screen. What I might do instead is make a drop down where you can select an individual team to look at. Also, I've rotated my display 90 degrees and it makes for a much better experience.

I'm just working on cleaning up the code now. I should have it posted by 5pm est.

I'm also working on a module for the next revision that will allow you to click on an agent in a "not ready" state and allow you to make them ready from the web page. Not so much of a wallboard feature as a supervisor feature, but useful nonetheless.

1st: I noticed that the sql call that retrieves the agent stats wasn't checking to see if the agents that it was returning were active or not. This was causing it to return multiple rows for agents whose skill set had been modified recently. (IPCC doesn't update the original resource config when you change a resource's settings in RmCm, it instead creates a new resource and marks the old one as inactive...so if you make a change to a resource, that resource would show up twice on the wallboard.) I modified the query to make this check.

2nd: I didn't see a need to differentiate between an agent that was "logged in" and an Agent that is "not ready" on the summary page. For all practical purposes they are in the same state, and wont become ready until they manually press the ready button.

My next release will include the detailed agent stats page which will have the reason code column that will tell you why they are in the state they are in, so if you need to tell the difference between a "logged in" agent and a "not ready" agent you will be able to do so there.

There is a new variable in the parameters.cfg file: "fileName". If you wish to rename the gila-wallboard.asp to some other name, update this parameter to reflect whatever name you change it to.

Added distinction between agents who are "not ready" and agents who are on "non-acd" calls. This was done by returning the reason code in the agentStats query and parsing the not ready eventType against the reason code for the "not ready" status.

that was a big help to me. We have one queue where they primarily make outbound calls, and prior to this there was no distinction in the script between not ready and not ready because they picked up the phone and made an outbound call. once I updated Leo's code with that If/then/Else code you provided, it was clear that some of those blinking NotReady agents were on outbound calls.

I like the plethura of stats your gila-wallboard has, it is great to provide to the managers but not on a 42" plasma due to the scrollbar. Good job.

I think it is fantastic that you all have taken your knowledge and applied it to a much needed tool in the call center arena. Thank you all for the contribution.

I attached a couple pages I did using the same code. just a little showcase, nothing fancy or elaborate. I thought it would be good to present what everyone's help can do.

We rotated our wallboards 90* and the output is much better. Only caveat is that the gila wallboard requires a minium of 1024 display width so in order to rotate the display 90* on a plasma it has to be able to support 1080i/p output.

I was hoping the code for the gila-agent and gila-gueue pages could be posted as well when clicked from the gila-overall screen. I am not a programmer so what you guys are doing is absolutely amazing to me. I am a router switch phone system guy that now has to take care of our UCCX server. Thanks a ton fellas - great work.

Sure, but know this. I took both mmelbourne and lmourits code and combined it into one CSQ page and possibly someone else. I scoured posts dated back to 2 years ago and sampled everyone's code and all versions until I found what I could work with. thanks again everyone for contributing. I couldn't have done it without you all. The wallboard page is again lmourits code but I stopped the changeing of the page on refresh so its just a main CSQ Summary page and then I used hyperlinks for each CSQ to its respective CSQ/Agent details page. I say this because the CSQ/Agent code will be messy when you look at it. I tried to clean it up but it got out of control with some of the variables so I figured "If it ain't broke, don't fix it" . I'm a network engineer not a programmer so I don't feel so ashamed for the sloppy code, although I acknowledge its not good practice to leave it that way. Anyway....

Lmourits code references a parameters.cfg file for the database connection and referencing some variables, where as mmelbournes has all of it within the code itself so you will see each separate table has separate pieces of code and i just used html to combine the two together and made some minor adjustments.

Hello Jeremy...hope that you can give me a clue as to what I have missed. I downloaded the gila-wallboard from your sourceforge site referenced within many email threads...I have a lab setup running UCCX 7.0 HA. I have followed the posted instructions to configure the wallboard and ALMOST have it working. I can see the screen and it does show my test agent signed on and does reflect when I change agent states. Problem is I don't see any CSQ data, calls in queue etc...I checked and rechecked the user and made sure RtCSQsSummary RtICDStatistics,AgentStateDetail

Resource, and Team were checked off under the roles...has anybody else seen this on UCCX 7.0?

I've added the necessary code to display the Reason Code column in the agent stats page. I've added parameters for modifing the default system codes and for displaying up to 5 user defined codes. Once I finish cleaning up the code I will post it online and then go back and update the original Wallboard 2.4.1 to include this code for those who don't care to use the gila version.

I was wondering how the reasonCodes were defined, I found the table where the code is stored but it doesn't cross reference anything that I could find that has a human like explanation of the reason. We have a bunch of reason codes that are 0 and then there are some that are in the 65750-65770 range but again I can't seem to find what those numbers represent.

The new parameters.cfg file in the latest build of gila-wallboard.asp has a user defined and system defined reason codes section that allows you to edit the text displayed for a given reason code. The default reason codes are defined by cisco as follows:

* Predefined Not Ready Reason Codes

0 = default

33 = supervisor moved agent to Not Ready

32755 = call ended

32756 = phone back in service

32757 = CM failover

32758 = work state timer expired

32759 = phone out of service

32760 = agent logged in

32761 = agent received non-ACD call

32762 = agent went off-hook

32763 = agent let a call go RNA

* Predefined Logout Reason Codes

0 = default

32764 = CRS failover

32765 = connection down

32766 = CAD closed

32767 = agent re-logged in

To my knowledge there are no reason codes returned for states other then "not ready" and "logged out" so in the latest build I faked it out by creating my own and making them user updatable.

Broke up the parameters.cfg file in to modules for easier naviagation.

More code cleanup on the original gila-wallboard.asp.

Please feel free to provide input on the output of the application. There may be several cool mods to be done that I haven't thought of. I will try to incorporate all requests/ideas that my time/coding skill allows for.

I may be dyslexic but I think the "oldest in queue" and "calls handled" columns got reversed in this version. Also, is anyone else seeing a discrepancy between the queue stats and the overall stats? Specifically, the total of the abandoned calls column does not equal the abandoned calls in the overall stats. The same thing applies to the longest wait time. Perhaps I have a script problem??

One thing I forgot to mention about the current build, it uses select statements accessing the Team table...so if you followed the install instructions verbatim and only gave your IIS user access to select from RtCSQ, RtICD and AgentStateDetail then you will notice that you aren't getting the nice Team headers on your Right Side Bar.

Right now it's just an asthetic issue if not enabled but in future releases I may make more use of this table to the point where not having access to it might break the application.

To enable these you will need to add access to the Team table through enterprise manager.

I will update the documentation in the next release to reflect this new requirement.

Back on the Supervisor subject, looking through the database under the Resource Table, the resourceType specifies the difference between a supervisor and an agent with a 1 or a 2 correct? Then the rest of the parameters would be the same for viewing if they are logged in or not? Same with the Supervisor Table.

I recieved an e-mail from a netpro member today with some good questions so I thought I would share it with the rest of the community in case others had similar observations...

just loaded up the wallboard script and it is awesome. Thank you for your work in making it more presentable. Please understand that this not a request for support and I am only providing feedback as I am assuming you are planning to use the board in production as well. Please let me know if you would rather me post it to the forum.

1) The overall call stats seem to conflict with the data displayed in the queue stats. For example, the number of abandoned calls in the overall is 4 and the number in the calls abandoned column is 3 (if you total them).

2) The longest wait time in the overall call stats is displaying differently than the longest wait time on the queue stats. I wonder if one of the stats is taking into account vmail time. This could also be playing a role in #1.

3) The supervisors who also participate as agents are not listed in the status column. I realize this is something that may be unique to our environment but it seems that you would want it to represent all agents regardless of whether they have elevated privileges.

/********************************************/

For your first two questions, you are correct that the overall stats

do not match up with the detailed CSQ stats. As near as I can figure,

the overall stats are a summary of the past 24 hours which is why you

may see totals that are always the same or larger (never smaller) then

you real CSQ totals. If you notice when you load it up first thing it

then morning it may say on the overall stats that you've already taken