Minded Systems

Cisco XML Services Scripting

For those who have taken the time (and frustration) to setup a VoIP network with Cisco IP Phones, it would seem natural to want to take full advantage of the more advanced functions available to these market-topping devices. One of the more powerful and easily usable functions of the Cisco IP Phone series’ is the standardized XML services that can be added to nearly all of the Cisco IP Phones. These services can be found in various places on the internet in various different forms (links, downloads, etc.); or they can created from scratch.

The services are built by directing the phones to any of a number of predefined XML objects. The objects have a wide range of abilities from regular text display to masked input fields all the way to image display. Furthermore, the XML object creation is no limited to static XML files. The resulting power lies in the ability to call scripts that dynamically generate Cisco ‘friendly’ XML objects. Additionally, the phones provide unique headers as part of their HTTP requests that contain information specific to the phone making the call. This includes information such as the phone model and screen size. As sent by the phones, these unique headers will be as follows (according to current Cisco documentation):

  • x-CiscoIPPhoneModelName
  • x-CiscoIPPhoneDisplay
  • x-CiscoIPPhoneSDKVersion

Many scripting languages may modify these for accessibility. A commonly seen example of this is PHP, where the headers are accepted into the global $_SERVER array variable. Each header is put into all uppercase letters and an ‘HTTP_’ prefix is added to specify that they were sent with the HTTP headers.

The model names provided by the phones will be the Cisco model information, similar to format of ‘CP-7960G’. Some models are capable of functionality that other models are not. This may be useful to the programmer, although this header is more commonly used for determining if the request came from a Cisco IP Phone or not simply by its presence.

A very useful header to most programmers of Cisco XML services will be the x-CiscoIPPhoneDisplay header. This header includes 4 pieces of information about the phones display, all comma seperated. The first two numbers are the width and height of the available screen size in pixels. The high resolution color screen Cisco phones usually have a size around 298×156. The 3rd number provided is the color depth available. The color displays will have a depth of either 12 or 16 depending on the model. Lastly, a ‘C’ or ‘G’ is given to indicate a Color or Greyscale display. With image displays being one of the most useful display services available, this information can be invaluable to the image creation script(s).

Last in the list of transmitted headers is the SDK Version. As indicated before, the functionality available to a phone can be determined by its model name, however a more robust and effective way to determine this is with the SDK Version. It is possible that newer firmwares for any particular phone will support a different version of the SDK. As a result, the SDK version is a better determining factor for supported functionality.

As with most application development, it is important to check the Cisco IP Phone documentation that is available on their website. A complete list of usable XML service objects can be found there. In addition, many extra useful features are explained including items like customized softkeys, internal URI functions and more.

Here are some freely available Cisco XML services provided by Minded: (services will redirect browser requests)

**NOTE**: We are currently looking for suggestions on XML services to create and make available to the public where possible. Please comment with your suggestions!

I am looking for time and attendance functionality to connect to Microsoft Dynamics AX web services? Do you have that capability? If not do you know of a developer who would like to take on a custom project?

Thank you.

John Capobres | IT Manager | Western States Equipment Co. | 208-884-2291

May 23, 2013 John Capobres
Please provide a valid email address

Trackback URL