|
Using the Aastra 480i to create a one per room user interface for WebBricks
The people at Aastra recently sent us their 1.3 firmware update, this has made the 480i an attractive proposition for a VOIP home handset. We of course we're more interested in how we could get it working with a community of WebBricks |
Aastra 480i XML browsing and WebBricks
We've had the 480i phone for some while now but recently we were sent version 1.3 of the firmware for this phone. This firmware adds an XML browser that can be accessed from the soft keys on the front panel.
Since this phone is available at reasonable prices and its a good VOIP phone with SIP firmware, we thought we'd try it out as a 'one per room' interface for the home.
General view of the 480i
Basically the 480i is mid to upper range corporate phone, however it looks fairly soft with nice curves. This means that it looks good in a home enviroment as well, here's on in a kitchen:
Getting the XML into the 480i
This is a fairly straightforward process, just browser to the phone and select the option for the XML server. Note that there are two options, for the moment we don't need the HTTP push.
Constructing some static XML
The Aastra 480i uses a very similar structure to the Cisco XML: <AastraIPPhoneTextMenu> <Title>Thirtover House</Title> <MenuItem base = "http://10.0.0.12/"> <Prompt>Kitchen Floor</Prompt> <URI>kftoggle.php</URI> </MenuItem> <MenuItem base = "http://10.0.0.12/"> <Prompt>Garage Doors</Prompt> <URI>gMenu.php</URI> </MenuItem> <MenuItem base = "http://10.0.0.12/"> <Prompt>House Status</Prompt> <URI>aaData.php</URI> </MenuItem> </AastraIPPhoneTextMenu>
Here's what the above looks like on the 480i:
Building dynamic XML using PHP
In this case we build the XML to include values subsituted from WebBricks around the house.
This allows us to create a context sensitive menu that lets the user know whats going on: <? include ("phplib/Nweblib.php") ; // include the WebBrick Library header("Content-Type: text/xml"); // we're doing XML here
wbTrigger("10.0.0.24","7") ; // kick the channel
sleep(1) ; // give the channel a chance to update
$kfsts = digOutSts("10.0.0.24",7) ; // read the WebBrick status
if ($kfsts == 1) $kfnme = "On" ;
if ($kfsts == 0) $kfnme = "Off" ;
$myTitle = "<Title>Floor: " . $kfnme . " Temp: " .
ct("10.0.0.24") ."C</Title>
" ;
echo "<?xml version="1.0" encoding="iso-8859-1"
?>
" ;
echo "<AastraIPPhoneTextMenu>
" ;
echo $myTitle ;
echo "<MenuItem>
" ;
echo "<Prompt>Switch Floor</Prompt>
" ;
echo "<URI>http://10.0.0.12/kftoggle.php</URI>
" ;
echo "</MenuItem>
" ;
echo "<MenuItem>
" ;
echo "<Prompt>RETURN</Prompt>
" ;
echo "<URI>http://10.0.0.12/aastra.xml</URI>
" ;
echo "</MenuItem>
" ;
echo "</AastraIPPhoneTextMenu>
" ;
?>
Here's what the above looks like:
Here's another example, this time showing state. Here, garage door one has just been operated so that it is neither open nor closed:
What's next
Well, for the larger home implementing the XML directory service would be good fun.
When we get a moment we'll be looking into building a XML version of an Asterisk dialplan to automatically display the internal extensions.
One of the other possibly useful features of the 480i its its ability to take a HTTP push, this would allow for important events to be displayed on the phone's screen, although at the moment the messages are only shown for a short time before the phone reverts back to its normal phone menu, to too much of a problem if all you want to display is the fact that the door bell was rung. Thanks
To Mark Handley and the people at Aastra for getting us the latest firmware. |