We are currently piloting a Cisco IP Telephony system and could use some assistance setting up the basic XML features. I am familiar with the section of the Call Manager that defines location of XML pages that perform specific functions, i.e.: information, directory and idle.
I currently have a web server setup to host the XML files, but have run into problems creating the XML components. Would anyone mind pointing me in the direction of an entry-level document regarding this? I have looked at various TAC documents, and cannot seem to find what I am looking for.
Or, if anyone is feeling generous with his or her time, would you mind providing an example of what I need to do to get the idle screen display an image. I have converted a .bmp file into a .cip, which I believe to be the correct format, but the IP phone only displays errors when entering idle mode.
Any suggestions or help are greatly appreciated.
Ryan Rose (via) Mike Kirby
I found this in the Voice & Video - IP Telephony forum... it might help:
Download and install the Cisco IP Phones Services
Software Developers Kit (SDK) on a seperate workstation.
The SDK tools will default to C:\CiscoIpServices\Tools.
Have your logo ready in .gif fomat. 130 X 65 pixels
maximum. example: logo.gif
Convert your gif to CIP format using the gif2cip.exe
C:\CiscoIpServices\Tools>Gif2Cip logo.gif logo.xml
The tool will convert logo.gif to logo.xml and look
something like the following...
Place the logo.xml in Call Manager c:\InetPub\wwwroot
You must set each phone to the following... Setting
these settings in the enterprise parameters section will
---Cisco IP Phone - External Data Locations---
Idle Timer (seconds) 10 seconds.
Caveats: The missed caller ID and caller ID name will
not appear while the logo.xml is active.
Thanks for the help.
I have a logo.xml file that looks like this:
When the phone I am testing (a 7960) enters idle, only the "Prompt" section of the code appears, displaying the text "-----=UNC=-----" and no image is displayed. Any ideas on what I may be doing wrong here? I have tried converting both a color and b&w .gif.
// Copyright ©2001 Cisco Systems Inc. All rights reserved.
// File: logo.asp
// Author: BJH
// Purpose: Provide Logo Image for Idle Timeout
serverIP = Request.ServerVariables("LOCAL_ADDR");
Response.Buffer = true;
Response.ContentType = "text/xml";
Is this an XML file or a java script? I assume the file should still be called logo.xml, but what variables, aside from that 'Data' itself, do I need to change?
Thanks for the help!
An XML IP Phone service is simply a web page that outputs either text or text/xml. Most any web server (ie IIS, Apache, etc) can handle this.
To get up and running quickly, you need to rename the .cip file that was created by gif2cip to .asp (for IIS, or .jsp for Apache etc) and add a command at the top of this file that sets the output format to text/xml
ie In asp it's something similar to:
<% @LANGUAGE = VBScript %>
Response.ContentType = "text/xml"
Adding those 4 lines to the top of the asp file followed by the original contents of the .cip file should work.
Use that url when specifying the idle url and all should be good.
Note that an idle url is simply an XML IP Phone service that is called automatically by the phone, and is otherwise no different from other services accessed using the "Services" button on the phone.
A great resource for creating these services is "Developing Cisco IP Phone Services: A Cisco AVVID Solution" by Cisco Press. You can find and preview this book on O'Reilly's Network Safari (http://safari.oreilly.com/). Safari offers a free 14-day trial, so you can get the full content of the book at no cost and get started right away!
Thanks for the advice Aaron, I will definetly check out that book later today.
Here is my current situation; I convert the gif, rename it to idle.asp, insert the code at the top, move the file to my c:\inetpub\wwwroot, define the path in the call manager, set the idle timer, reset the phone, and wait. Once the phone goes into idle mode, the screen area, where the image should appear, goes blank/stays emtpy, and the "Temporary Prompt" text appears at the bottom. When I hit the update button, I get a "Host Not Found" message in the same line as the "Temporary Prompt" text. Do you think this issue may be caused by a setting in IIS?
Shouldn't be a setting in IIS. Looks more like your cip content perhaps. When trying to use the cip file you posted I am getting an xml parse error, and when I replace that with my own cip content (and change height/width properties as well) it works.
Perhaps try generating the cip file again? Ensure that the source image is within the correct size range (133x64) and copy the cip contents directly into the asp file. You could even try experimenting with a slightly smaller image though the image parameters you posted are within the right parameters. Hopefully that should work better... (crosses fingers).
Well, your cip file works now (had a space char within the data). Sorry for any confusion.
Given that it works here now, it could be either your IIS or your XML parser. If you're running an older version of IE, you could try upgrading to 5.5 or 6.0, that has helped in the past as IE upgrades also include infrastructure upgrades such as the XML parser. In addition, check the service pack of windows 2000 (if that's your OS) and upgrading that may help as well. Just some shots in the dark that have worked for me with past problems...
Having tried converting the gif to cip on two different installs of the SDK, and still getting the same error I am starting to wonder....
Here is a link to the image:
If you have some spare time, could you gif2cip it, and see if you end up with the same output I have been getting?
I appreciate it.... this does not seem that complicated, so I apologize for taking up your time with this.
That one worked fine as well. Here it is just fyi, but when copying it from this forum you may have to remove spaces from the text (that may be introduced by posting here) between the data tags as there should be no spaces there or unpredicatable results can occur. Could email it as well.
Hi, my name is Larry McDowell and I worked with Mike Kirby. He has been working with you regarding our problem with posting our logo onto our 7960's. I've have been given the job to resolve this issue. I have went through what you and mike have talked about and the example that you sent to him has given us the same results.
Here is something that I don't think he tried:
- I put the url for the logo in both the services and the idle field in call manager, I update cm and reset the phonen and get the same results. No logo but the "temporary prompt" prompt will show at the bottom. I push on "update" and it says, "host not found."
- I will then push the services button on my phone and the logo will appear on the screen.
- I let my phone go to idle and it will be blank but this time I can push the "update" button and the logo will appear.
- I found that it will do this if I visit the "directories" section on the phone or "settings"
It seems to me like the idle is caching the data from the last visited feature. The good news is that I have confirmed I can see the image on the phone but I still can't get it to appear automatically without doing what I just discussed above. I've tried two different IIS servers with all the critical updates installed and not sure if it's the phone or IIS. Thanks again for your time and if anyone has a suggestion, it is greatly appreciated.
University of Northern Colorado
What version of call manager are you using?
I'm having very similar problems with .asp files that I know work on 3.1 call manager but refuse to display on phones that have been upgraded to a phone load from either 3.2 or 3.3.
I'm wondering if Cisco have done something to the code on the phones as this is the only difference.
The images also fail when displayed on phones on a cm3.1 that have a load from a later version, again this backs up my "it's the phone loads" argument.
Anybody else any thoughts on this.
The phone load version might have something to do with it, though since the communication is between the phone and the web server, the specific version of the CM shouldn't have anything to do with it.
The fact that it does display after the update button (or some other action) is pressed might indicate a phone load problem as Paul noted. Glad that it is finally displaying at least!
Ours works on CM 3.2(2c) at the moment, and Paul mentions that it works on his 3.1 system as well, though not with upgraded phone loads. What version of CM are you using, and what version is running on your phones? (note that you can bring up info on an IP Phone in a web browser- just type the IP address of the phone in your web browser).
FYI also reference this thread in the IP Telephony forum:
Currently, we are running CM 3.3 and the version of software that the phone is running is 3.3(2.0) with a hardware revision of 2.4.
I talked with a couple of people about these concerns about the phones and we did notice there is a newer version of firmware for the 7960.
We are hesitant on pushing it out to all the phones at this time because today is our first day of "live" use in a building on compus.
Do you happen to know of a way to push out a firmware update to just one phone?
Thanks for all your ideas,
Device defaults are configured in the CallManager Administration (on 3.2, choose the Device Defaults item under the System menu), and there you can identify the default device loads.
There is a variety of documentation available on the Cisco phone bootup process on the Cisco website, you may want to familiarize yourself with it before going ahead with something like this.
I'm not sure if theres an easier way, but here is one option that should change the load for a particular phone.
You'll need to obtain the new phone load bin file (ie P00303020204.bin). I am not sure if you can download just the .bin file any longer, it seems to download as a full installation program that runs on the CallManager, which would likely upgrade all phones at the same time which you probably don't want to do at this time (though perhaps you could change the default load back to its original value after the installation through the ccmadmin device defaults config screen? Possibly, but is that something you want to risk in a production environment?). Hopefully you can just get the .bin file.
By simply copying the .bin file into the tftp folder and editing one phone's config file you should limit the effects this could have on your CM environment, but as always be careful and remember that this is "unofficial advice". I've made modifications this way before, but I can't predict how it will go for you, etcetc.
You can change the load a specific phone uses by modifying its config file located in the tftp folder on the CallManager (ie C:\Program Files\Cisco\TFTPPath). You'll need to put the new phone load in this folder for access by the phone. The phone load file is in the format "P00303020204.bin".
Find the phone's xml config file (ie SEP000427D3FF51.cnf.xml) and open it with notepad. Note that the phone's config file is based on it's device name (so make sure you're editing the correct one!).
Find the loadinformation tag within the config file:
Note the version that is in there now so that you can reset it later. Replace the value such as P00303020204 with the new load version, and reset the phone (ie **#**), and it should pick up the new load.
Hope that's of some help.
OK I DID IT!!!!! Unfortunately, the firmware upgrade did not work but the
documentation in the firware release notes had a workaround for the problem.
Apparently there is a know issue for xml documents not showing up in the
idle setting but if you add a header refresh statement in the .asp file, it will then
show up. Below is the document I found regarding this. The workaround is toward the bottom of the page.
Thanks for all your help. I do have one more question. Now that I have the picture showing when idle, is there a way to have it disapeer when someone
calls and show the caller ID instead of the caller ID showing up in the prompt.
Congratulations! (and thank you for posting information regarding the bug!)
Now that you have the idle url displaying properly, you realize how irritating it is that the idle url doesnt clear when a call comes in. There was a post concerning this issue in the Open Voice Applications thread, but no resolution was found. I agree with the poster in there suggesting that "a phone is not idle when it's ringing, so clear the idle url". Hopefully Cisco addresses this at some point in the future.
Thank you for all your help in resolving this problem. After looking at some of the things ahead of me, I see that my fun is just beginning.
I am having the same problem which you have solved, but I cannot figure out how to add these HTTP headers to the ASP page. Would it be possible to get an example of what you did?