<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EstiloCorreioElectrnico17
        {mso-style-type:personal-compose;
        font-family:"Arial","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=PT link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><span lang=EN-US>In CUCM 5.0 and above you must have another
server with iis enable and point to idleurl.asp<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>Contents of file<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><%<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>///////////////////////////////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>//<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// Title: Logo<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// Author: kstearns<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// Source File(s): logo.asp<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>//<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>///////////////////////////////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// Description:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>//<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// Logo provides a quick and easy method to
get company logos or other graphics<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// to display on a Cisco IP Phone. It would
typically be used as an Idle URL service.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// This script will only access image files
which exist in the same directory<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// as this logo.asp file, and they must be
either GIF or JPEG format.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>//<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// The script will select the image to be
displayed in the following order:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// 1) The image filename specified by the
'logofile' parameter, if it exists<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// 2) logo.jpg, if it exists<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// 3) logo.gif, if it exists<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>//<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>///////////////////////////////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// Requirements and Caveats:<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>//<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// - Client: Cisco IP Phone XML browser<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>//<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// - Required COM Servers: Cisco CIPImage<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>//<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// - The 'includes' file(s) listed in the
beginning of this file MUST be reachable<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// at the specified web path.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>//<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// - When creating the Logo Phone Service
on CallManager, you should specify a<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// a Phone Service Parameter for
specifying an image filename.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// The Parameter Name must be 'logofile'
and is not a Required Parameter.<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>//<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>///////////////////////////////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>Response.ContentType =
"text/xml";<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// If "logofile" was specified
as a querystring parameter, then use it. //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// Otherwise, use logo.jpg or logo.gif (in
that order). //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>var cipData = "";<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>var logoDir = getdirectory();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>var logoFileExt = "";<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>var newHeight = 0;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>var newWidth = 0;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>var cip = new
ActiveXObject("CIPIMAGE.ImageProcessor.1");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>var fso = new
ActiveXObject("Scripting.FileSystemObject");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>var logoFile =
String(Request.QueryString("logofile").Item);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>if ( logoFile == "undefined" ||
logoFile == "") {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if (fso.FileExists(logoDir +
"logo.jpg")) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> logoFile = "logo.jpg";<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if (fso.FileExists(logoDir+"logo.gif"))
{<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> logoFile = "logo.gif";<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> Response.Write("ERROR: Could not
find default logo graphic file logo.jpg or logo.gif");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> Response.End;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>}<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if (fso.FileExists(logoDir + String(Request.QueryString("logofile").Item)))
{<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> logoFile =
String(Request.QueryString("logofile").Item);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> Response.Write("ERROR: Specified
logo graphic file '" + logoDir + logoFile + "' does not
exist.");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> Response.End;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>}<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>// Load graphic file into the CIP object
for processing //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>logoFileExt =
logoFile.substring(logoFile.length - 3, logoFile.length);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>logoFileExt = logoFileExt.toUpperCase();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>if (logoFileExt == "JPG") { //
If this file is a JPEG file then ...<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> cip.LoadJPG(logoDir + logoFile);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>}<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if (logoFileExt == "GIF") {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> cip.LoadGIF(logoDir + logoFile);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> Response.Write("ERROR: Invalid
graphic file extension. Only .JPG and .GIF are supported.");<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> Response.End;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>}<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>
/////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // This section of code gets the
dimensions of the source image //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // and determines which is
proportionally larger compared to the max CIP //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // image size of 133 x 65. This ratio is
then used find the new //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // dimensions which maintains aspect
ratio. //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>
/////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US> newHeight = cip.height;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> newWidth = cip.width;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if ((cip.width/133) > (cip.height/65))
{<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> newWidth = 133;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> newHeight = parseInt(cip.height *
(newWidth / cip.width)); <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> newHeight = 65;<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> newWidth = parseInt(cip.width *
(newHeight / cip.height));<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>
//////////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // Resize the image and convert it to
CIP format, then store the Data portion //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // of the XML object in a
string //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>
//////////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> cip.Resize(newWidth,newHeight); <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> cip.RGBToPalette();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> cip.ColorToGray();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> cip.ReducePaletteColors(4);<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> cipData = cip.SaveCIPDataToBuffer();<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>
/////////////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // For some reason, the cipdata string
has some garbage on the end of the string //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // occassionally, so I clip the end of
the string according to the length set by //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // the dimensions of the
image. //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // Not sure if this is a bug in the COM
server, or the ASP scripting engine, but //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> // I'm working on it. In the meantime,
this is a good workaround. //<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>
/////////////////////////////////////////////////////////////////////////////////////<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> if ((newWidth*newHeight/4)*2 >
parseInt((newWidth*newHeight/4)*2)) {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> cipData = cipData.substr(0,
(((newWidth*newHeight/4)+1)*2));<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> else {<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> cipData = cipData.substr(0,
((newWidth*newHeight/4)*2)); <o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> }<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>%><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><CiscoIPPhoneImage><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><LocationX>-1</LocationX><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><LocationY>-1</LocationY><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><Width><%=newWidth%></Width><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><Height><%=newHeight%></Height><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><Depth>2</Depth><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><Data><%=cipData%></Data><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><Prompt></Prompt><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><SoftKeyItem><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> <Name>NovaCh.</Name><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> <URL>Key:Line1</URL><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> <Position>2</Position><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US> </SoftKeyItem><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><SoftKeyItem><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><Name>Exit</Name><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><URL>SoftKey:Exit</URL><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><Position>4</Position><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US></SoftKeyItem><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US></CiscoIPPhoneImage><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN-US>Above one of my creations the idle url
whith two softkeys…<o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>The logo.jpg must be in same directory.<o:p></o:p></span></p>
</div>
</body>
</html>