I have written some applications to show a png on the IP phone.
I am using Tomcat 5.5, using a JSP to show the <CiscoIPPhoneGraphicFileMenu> XML object on the phone.
However, sometimes it takes the phone around 20-30 seconds to retrieve this JSP.
Does anybody know why??
Is it the problem of the Tomcat server??
Thanks a lot!!
I take it the page is still displayed eventually.. is that correct (usually waiting so long means the phone tries to access an url that doesn't work)?
You might install Wireshark on the server and look when the phone makes the actual request and when the response is being sent. Then you'll know who causes the delay.. the phone or the webserver. If it's the phone, you need to mirror the switch port where the phone is connected to and look what the phone does when you start the service.
Thanks a lot!!
In the log of the Tomcat server, I have seen that the response is actually passed to the IP phone.
Sometimes the phone shows the JSP immediately but sometimes it shows it after around 20 seconds (eventually it shows the page).
And I have compared the behavior with softphone. It seems that softphone does not have this problem.
Would it be a problem of the processing power of the IP phone? Or about its firmware? Or could I tune some parameters in CCM so that maybe the phone will timeout or retry the request after let say 5 seconds?
For as far as I think it has something to do with the IP Phones. I have used all kinds of IP Phones, old en brand new ones. Also different kind of Call Managers.
I can not find any difference, it occurs in all the situations some times... :(
My colleague found that if we ask the hard phones to repeatedly get even a text menu only, not a graphic menu, the phones will request the JSP page for a long time around every 30 times of requests.
So... this is a limitation of the hard phones? Does anybody know how to prevent it?
I have checked from Tomcat and Ethereal that the response is actually committed to the phones.
Could we do something do alleviate this problem.
I have recently written an application that brings stills from a video camera to the phones (797x). I have my jsp page with a refresh header of 1 second. I noted that depending on the size (in KB) of the picture, the stills would be shown more or less fluently (the smaller the picture the faster the refresh) which definitely points to a limit on the phone somewhere.. (loading an 80KB picture should be near instantaneous). However, the phone keeps doing that forever at the same rythm.
I have seen that phones take a long time to request a page or even time out (even the IPC) but that happens randomly and can be fixed by aborting and trying again.
What do you mean by "the response is actually committed to the phones"? I asked for Wireshark since it tells you when the phone has received the content.. and you see when the phone requests data.. so you know if the delay comes from the phone requesting the data, the webserver delivering the data, or the phone rendering the data after having received it.
We are using Tomcat 6.x and CiscoIPPhoneGraphicFileMenu in Servlet or JSP and the response is about 2-3 secs at the most on hard phones and instant on IP communicator. I found the new phones 79x1 and 79x5 are much better (faster processor I guess) than older 79x0 series.
Interesting.. I didn't note a speed difference between the 7970 and 7975.. I only noted that a 30k file was loaded a lot quicker than an 80k file but the 15k one is low color and looks like shit. Don't you just wish that all phones would do JPG and not have any color space limitations? I have yet to find a fast way to generate 12bit PNG files.. I can either do 8 or 24 bit but 8bit looks crappy if it's an actual image (fine for computer generated graphics with few colors) and the latter is dithered on all phones but the IPC.
With the 8bit files I have about one image every two seconds.. maybe a little less.
"I have seen that phones take a long time to request a page or even time out (even the IPC) but that happens randomly and can be fixed by aborting and trying again."
So there is no way to avoid it?
My boss has asked me to write a little application, from which the phone will continuously refresh images.
I know user could press "Cancel" button and let it retry, but I really want to avoid this situation.
"the response is actually committed to the phones"
My meaning is that from my observation with Wireshark, the phone has actually received the data from my web server, and is ready to render the data, but it hangs.
Thanks a lot!!