RSS Feeds Displayed On CISCO IP Phones


CISCO 79XX Phones have a built in Web Browser that displays specifically formated XML content. This can be used to display customized pages and information when a user press the phones Services button.





More information on the XML syntax and examples of the above can be found at :- http://www.voip-info.org/wiki/view/Asterisk+Cisco+79XX+XML+Services

From the above URL, I found a link to :- http://llg.cubic.org/tools/cisco.html with a script that takes standard RSS feeds available on the net and converts them to the XML syntax that can be displayed on CISCO IP Phones XML browser. I took this script and modified it to make the output compatible with SIP images running on CISCO 7960 and CISCO 7940 IP Phones. According to an extract from http://lists.digium.com/pipermail/asterisk-users/2004-June/043277.html

>
> SoftKeys don't work either :-(
> 
Apparently they work with the Skinny image, but not with SIP.
I'm using SIP, so any XML that includes a  fails with
a parse error.

One of Cisco's documents states the following:

    The Cisco SIP IP phone supports Cisco CallManager XML up to version
    3.0 but does not support the XML objects added in Cisco CallManager
    XML version 3.1, which are: 

        - CiscoIPPhoneIconMenu 
        - CiscoIPPhoneExecute 
        - CiscoIPPhoneError 
        - CiscoIPPhoneResponse 
        - SoftKeyItem 

The above was taken from the following document, under the "Cisco
CallManager XML Support" section:

http://www.cisco.com/univercd/cc/td/doc/product/voice/c_ipphon/english/ipp7960/addprot/sip/admin/ver5_1/sipovr44.htm

The document is quite old, but statement disclaiming support for the
 still holds true.


Getting The Script

My version of the script is available for download here

The original script I worked from is available at :- http://llg.cubic.org/tools/cisco.html


Required Perl Modules

I found that i need the following perl modules, all available from http://search.cpan.org
  1. LWP::Simple
  2. HTML::Parser
  3. HTML::Tagset
  4. URI
  5. XML::RAI
  6. Date::Format
  7. XML::RSS::Parser
  8. XML::Elemental
  9. XML::NamespaceSupport
  10. Class::ErrorHandler
  11. Class::XPath

These are installed in the typical Perl module installation way



Configuring the Script

  1. Within the script file, there is a perl array called feeds. This array must be populated with the URL of the RSS feed and its name.

  2. Within the script file, there is a perl array called sites. This array can be populated with the URL of stic sites (not RSS feeds) to populate the menu as well.
  3. There are 3 variables/timers that change certain display items that can alos be modified (menutitle, menuprompt and defaultrefresh).

  4. Commenting out the line
    my $DEBUG="YES";
    
    will remove a menu option that prints out the HTTP header environment variables sent by the phone to the script. I added these in as they are useful to debug/modify the script.


Running The Script

  1. Copy/upload rss2cisco.pl to the directory of your choice in your web server's public folder. Remember to place it in a suitable location for CGI execution.
  2. You may need to rename the file to .cgi if your Apache configuration requires this for execution of CGI scripts.
  3. Ensure that the proper executable permissions are set for rss2cisco.pl




Calling the Script From The IP Phone

To make this script be run when a user pushes the Services button on their IP phone (assuming the phone is running a SIP image) :-

For a 794x/796x IP phone, in the SIPDefault.cnf (or the specific SIPxxxxxxxx.cnf for that phone) add the directive services_url with a value indicating the location of the script EG :-

services_url: "http://1.2.3.4/cgi-bin/rss2cisco.pl"

For a 797x/798x IP phone, in the specific SEPxxxxxxxx.xml for that phone add the XML tag servicesURL with a value indicating the location of the script EG :-

http://1.2.3.4/cgi-bin/rss2cisco.pl


If help is still needed, try a google search

Google




Compiled By :- Nic Tjirkalli

nictjir@gmail.com
©2008 Nic Tjirkalli