<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)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
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.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
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 bgcolor=white lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>When you get your project set up, let me know and I'll put a link
on The Shire front page.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>=G=<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";
color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:
"Tahoma","sans-serif";color:windowtext'> Charles Jones
[mailto:jonescr@cisco.com] <br>
<b>Sent:</b> Tuesday, March 11, 2008 10:54 PM<br>
<b>To:</b> hobbit@hswn.dk<br>
<b>Subject:</b> Re: [hobbit] Hobbit to IPPhone<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal style='margin-bottom:12.0pt'>Just thought I would send
another update and a preview. This has been really fun to work on. I think I am
going to officially call it "Hobbit2IPPhone". I will probably create
a sourceforge project and whatnot for it as well.<br>
<br>
Here is some info on Hobbit2IPPhone:<br>
* Hobbit2IPPhone can be run without touching the Call Manger, or having admin
access to the CM. All you need is your normal user login and pass to the CM
(same one you use to set your speed dials, etc).<br>
* Hobbit2IPPhone requires a web server with CGI access (could easily use your
Hobbit server).<br>
* The web server that the CGI is run on, needs bi-directional connectivity to
your IPPhone. If you can telnet to port 80 of your phones IP address, you
should be good to go. The phone also needs to be able to hit port 80 of your
web server.<br>
* The CGI needs connectivity to your Hobbit server, as it uses $BB to query the
hobbitdboard to get the host infos. If you are running the CGI on your Hobbit
server, this is a non-issue as it will just talk to localhost just like any
server-side Hobbit extension script.<br>
* Hobbit2IPPhone can be run as a sever-side Hobbit extension script, or out of
a cron job on another server, provided there is connectivity from the CGI host
to the IPPhone on port 80.<br>
<br>
Here's how my phone looks when everything is OK:<br>
<img width=320 height=240 id="_x0000_i1025"
src="cid:image001.jpg@01C883D5.C809D760"><br>
* Currently it is optional to display this message if all is green. I figured
some people may only want their screen to change if there is an alert.<br>
* Hitting "update" updates the display. There is also an automatic
refresh timer.<br>
<br>
<br>
Heres the view when some alerts have triggered:<br>
<img width=320 height=240 id="_x0000_i1026"
src="cid:image002.jpg@01C883D5.C809D760"><br>
As you can see, you get a nice ordered list, with a summary of how many hosts
are alerting.<br>
* You can select either via the up/down rocker on the phone and then hitting
"Select"<br>
* You can also select by pressing the number that is next to the alert.<br>
* To make it look nicely formatted I coded it so that it automatically
truncates the hostname so as not to line wrap.<br>
* Hobbit2IPPhone will override your phones idlescreen/screensaver, so any
alerts will not be hidden :)<br>
* Due to a limitation in the IPPhone, a maximum of 99 alerts can be selected. I
hope you never have this many!<br>
<br>
<br>
Here's what you get when you select a host, in this case, the first one:<br>
<img width=320 height=240 id="_x0000_i1027"
src="cid:image003.jpg@01C883D5.C809D760"><br>
Right now I have it showing the current status message for the alert, as well
as the alert duration. This can easily be configured to display anything you
can get from hobbitdboard.  I still have to reformat the text a bit so
that it compacts better. * Text that doesn't fit on the screen is accessible by
scrolling down.<br>
* When you hit "Exit" you are automatically brought back to the first
menu (an updated version of it, not a stale copy)<br>
* I also have to truncate the hostname in the upper title "Status for
..." because the IPPhone is picky and if this is too long, it just bombs
and won't accept the rest of the data at all!<br>
<br>
<br>
That's it for now...I'm going to continue hacking on this and try to make it as
user-friendly as possible before I release it.<br>
<br>
-----<br>
Possible future features:<br>
Hobbit2IPPhone 2.0: <br>
* Acknowledge/Enable/Disable alerts from the IPPhone, including text input of
reason.<br>
* Viewing of some reports or log data, like notification log, alert history,
etc.<br>
<br>
Hobbit2IPPhone 3.0:<br>
* Full graphics implementation - It's possible to have a mini hobbit-like
display and interface, and even view trends graphs<br>
-----<br>
<br>
FAQ: <br>
Q. What model IPPhones will this work on? <br>
A. I am currently developing using a 7960. I assume any 79xx will work.<br>
<br>
Q. What about color?<br>
A. Send me a color IP Phone to dev with and I will see what I can do :P <br>
Q. Wha? You work for Cisco, don't you have color IPPhones and routers coming
out of your ears?<br>
A. I actually work for a nonprofit section of Cisco. We don't have any spare
equipment, and even with my "discount" I can't afford to buy an
IPPhone just to play with, otherwise I would run a VOIP network at home :)<br>
<br>
Q. Can you make the message light flash, or the phone chirp when there is an
alert?<br>
A. So far, I don't think so. I have not found anything in the HTTP/XML protocol
that gives me access to those functions. I'd like that feature as well, and I
suspect it is possible, so I will keep looking for a way to do it.<br>
<br>
Q. What software prerequisites are there?<br>
A. Any webserver that can run a Perl CGI script. For Apache, this means
mod_perl, which shouldn't be a problem for most linux distros, Solaris folks
may have to jump through some hoops. The script uses the following perl
modules:<br>
CGI;<br>
LWP::UserAgent;<br>
URI;<br>
Time::localtime;<br>
It may also use Cisco::IPPhone, but thusfar I have written most of my own
simple XML functions and may remove that dependancy. With the exception of
Cisco::IPPhone, all of the modules are common ones that should be installable
via your linux distros package manager. For Solaris folks and anyone else, you
can install them via CPAN ie "perl -MCPAN -e 'install LWP::UserAgent'<o:p></o:p></p>

</div>

</body>

</html>