{"id":37,"date":"2009-08-27T16:21:34","date_gmt":"2009-08-27T15:21:34","guid":{"rendered":"http:\/\/iddles.co.uk\/blogs\/?p=26"},"modified":"2009-08-27T16:21:34","modified_gmt":"2009-08-27T15:21:34","slug":"cisco-cucm-uccx-queue-status-web-service","status":"publish","type":"post","link":"https:\/\/iddles.co.uk\/index.php\/2009\/08\/27\/cisco-cucm-uccx-queue-status-web-service\/","title":{"rendered":"Cisco CUCM UCCX Queue Status Web Service"},"content":{"rendered":"<p>Heres a snip of somthing I wrote as an &#8216;add on&#8217; the the free, Open Source<a href=\"http:\/\/sourceforge.net\/projects\/ipccwallboard\/\" target=\"_blank\"> SourceForge IPCC Wallboard<\/a> package.<br \/>\nThis uses code from the IPCC Wallboard package to access UCCX&#8217;s Historical database, and allows for queue information to be displayed on a Cisco IP Phone.<br \/>\nThe formattings nasty as the IP Phone does not operate as a standard browser so theres lots of spaces and stuff to get things positioned right.<br \/>\nIll post some information about how to get it working as a service in CUCM later&#8230;<\/p>\n<pre>&lt;%On Error Resume Next\n\/\/**************************************************************************************\/\/\n\/\/\u00a0\u00a0 Service: \u00a0\u00a0\u00a0 \u00a0Phone Wallboard Display\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/\n\/\/\u00a0\u00a0 AUTHOR: \u00a0\u00a0\u00a0 \u00a0Kevin Iddles, Yawns.com Limited\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/\n\/\/\u00a0\u00a0 PURPOSE: \u00a0\u00a0 \u00a0Display UCCX Queue information on IP Phone - Exposed as a service\u00a0\u00a0 \u00a0\/\/\n\/\/\u00a0\u00a0 VERSION: \u00a0\u00a0 \u00a01.1\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/\n\/\/**************************************************************************************\/\/\n\/\/**************************************************************************************\/\/\n\/\/\u00a0\u00a0 History:\n\/\/\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a01.1 - Updated to parse query strings from CUCM to allow for spaces\n\/\/\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a01.0 - Updated for use on customer sites including layout\n\/\/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0.1 - Based on original version from Cisco Netpro\n\/\/**************************************************************************************\/\/\n%&gt;\n&lt;!--#include file=\"parameters.asp\"--&gt;\n&lt;%\nResponse.AddHeader \"Refresh\", RefreshTime\n\/\/********************************START SQL MODULE**************************************\/\/\n\/\/**************************************************************************************\/\/\n\/\/\u00a0\u00a0 Module: \u00a0\u00a0\u00a0 \u00a0SQL Database Connector\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/\n\/\/\u00a0\u00a0 AUTHOR: \u00a0\u00a0\u00a0 \u00a0Jeremy Fielder, Leo Mourits\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/\n\/\/\u00a0\u00a0 PURPOSE: \u00a0\u00a0 \u00a0Performs Database Connections and retrieves relavent recordSets.\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\/\/\n\/\/**************************************************************************************\/\/\nIf IPCCversion = 3 Then\n WBConnect = \"Provider=SQLOLEDB; Data Source = \" &amp; DBsource &amp; \"; Initial Catalog = \" &amp; DBdatabase &amp; \"; User Id = \" &amp; DBuserID &amp; \"; Password = \" &amp; DBpass\nElseIf IPCCversion = 4 Then\n WBConnect = \"Provider=SQLOLEDB; Data Source = \" &amp; DBsource &amp; \"CRSSQL; Initial Catalog = db_cra; Integrated Security=SSPI;\"\nEnd If\nSet cn = Server.CreateObject(\"ADODB.Connection\")\n cn.open WBConnect\nneedor = \"0\"\nIf Request.QueryString(\"csqa\") = \"\" Then\n sqlcsqa = \"\"\nElse\n tmpcsqa = Request.QueryString(\"csqa\")\n tmpcsqa = Replace(tmpcsqa, \"%20\", \" \")\n sqlcsqa = \" (CSQName Like '%\" &amp; tmpcsqa &amp; \"%')\"\n needor = \"1\"\nEnd if\nIf Request.QueryString(\"csqb\") = \"\" Then\n sqlcsqb = \"\"\nElse\n If needor = \"0\" Then\n tmpcsqb = Request.QueryString(\"csqb\")\n tmpcsqb = Replace(tmpcsqb, \"%20\", \" \")\n sqlcsqb = \" (CSQName Like '%\" &amp; tmpcsqb &amp; \"%')\"\n needor = \"1\"\n Else\n tmpcsqb = Request.QueryString(\"csqb\")\n tmpcsqb = Replace(tmpcsqb, \"%20\", \" \")\n sqlcsqb = \" OR (CSQName Like '%\" &amp; tmpcsqb &amp; \"%')\"\n End if\nEnd if\nIf Request.QueryString(\"csqc\") = \"\" Then\n sqlcsqc = \"\"\nElse\n If needor = \"0\" Then\n tmpcsqc = Request.QueryString(\"csqc\")\n tmpcsqc = Replace(tmpcsqc, \"%20\", \" \")\n sqlcsqc = \" (CSQName Like '%\" &amp; tmpcsqc &amp; \"%')\"\n needor = \"1\"\n Else\n tmpcsqc = Request.QueryString(\"csqc\")\n tmpcsqc = Replace(tmpcsqc, \"%20\", \" \")\n sqlcsqc = \" OR (CSQName Like '%\" &amp; tmpcsqc &amp; \"%')\"\n End if\nEnd if\nIf Request.QueryString(\"csqd\") = \"\" Then\n sqlcsqd = \"\"\nElse\n If needor = \"0\" Then\n tmpcsqd = Request.QueryString(\"csqd\")\n tmpcsqd = Replace(tmpcsqd, \"%20\", \" \")\n sqlcsqd = \" (CSQName Like '%\" &amp; tmpcsqd &amp; \"%')\"\n needor = \"1\"\n Else\n tmpcsqd = Request.QueryString(\"csqd\")\n tmpcsqd = Replace(tmpcsqd, \"%20\", \" \")\n sqlcsqd = \" OR (CSQName Like '%\" &amp; tmpcsqd &amp; \"%')\"\n End if\nEnd if\nIf sqlcsqa = \"\" and sqlcsqb = \"\" and sqlcsqc = \"\" and sqlcsqd = \"\" Then\n sqlcsqa = \" callsWaiting &gt; '0'\"\nEnd if\nsqlGetCSQstats = \"SELECT CSQName, availableAgents, callsWaiting, convOldestContact FROM RtCSQsSummary WHERE \" &amp; sqlcsqa &amp; sqlcsqb &amp; sqlcsqc &amp; sqlcsqd &amp; \" ORDER BY CSQName\"\nSet rs = server.createobject(\"adodb.recordset\")\nSet cm = Server.CreateObject(\"ADODB.Command\")\n cm.ActiveConnection = cn\n cm.commandtext = sqlGetCSQstats\nSet rs = cm.execute\nResponse.Write deptName %&gt;\n|\u00a0\u00a0 Queue\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 |AA|CW| L Wait |\n-------------------------------------------------\n&lt;% While not rs.eof %&gt;|\n&lt;%= rs(\"CSQName\") %&gt; | &lt;%= rs(\"availableAgents\") %&gt;\u00a0 | &lt;%= rs(\"callsWaiting\") %&gt;\u00a0 |&lt;%= rs(\"convOldestContact\")%&gt;&lt;%\n rs.moveNext\n wEnd\n rs.close\n%&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Heres a snip of somthing I wrote as an &#8216;add on&#8217; the the free, Open Source SourceForge IPCC Wallboard package. This uses code from the IPCC Wallboard package to access UCCX&#8217;s Historical database, and allows for queue information to be displayed on a Cisco IP Phone. The formattings nasty as the IP Phone does not [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[16],"tags":[26,30,39,53],"class_list":["post-37","post","type-post","status-publish","format-standard","hentry","category-voip-and-uc","tag-cisco-call-manager","tag-cucm","tag-ipcc","tag-uccx","post-preview"],"_links":{"self":[{"href":"https:\/\/iddles.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/37","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/iddles.co.uk\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/iddles.co.uk\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/iddles.co.uk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/iddles.co.uk\/index.php\/wp-json\/wp\/v2\/comments?post=37"}],"version-history":[{"count":0,"href":"https:\/\/iddles.co.uk\/index.php\/wp-json\/wp\/v2\/posts\/37\/revisions"}],"wp:attachment":[{"href":"https:\/\/iddles.co.uk\/index.php\/wp-json\/wp\/v2\/media?parent=37"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/iddles.co.uk\/index.php\/wp-json\/wp\/v2\/categories?post=37"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/iddles.co.uk\/index.php\/wp-json\/wp\/v2\/tags?post=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}