N A B A Z C L A P I E R



Diclaimer :
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Nabaztag is a trademark of Violet.


Licence :
NabazClapier uses some GPL code from other open source projects, therefore it is
GPL too.

Version:
0.04

What is it ?
NabazClapier is a little proxy to add features to your wifi rabbit. It
filters some of the data that Nabaztag receives from the violet(c) site
(www.nabaztag.com). It can also replace nabaztag.com, allowing the rabbit to
work whithout any internet access.


Where ist it ?
You can download the latest version at http://sourceforge.net/projects/nabaztools


What is a Nabaztag ?
Guess ! or go to http://www.nabaztag.com to discover it.


Compatibility :
NabazClapier has only been tested on Mac OS X but it should work on Linux/Unix
without major modifications.


Compilation :
just type make.


Usage :
clapier [config file]


How does it work ?
NabazClapier intercepts the packets sent from the Nabaztag to the server
(nabaztag.com) and the packets sent from the server to your Nabaztag.

you have to configure your Nabaztag  to set the machine that runs NabazClapier
as the proxy used by your Nabaztag.
-Switch on the Nabaztag in "AdHoc" mode (see Nabaztag documentation),
-click the 'use proxy' checkbox"
-with your brwoser enter the IP of your machine in the proxy field
-set the port to 4453
-run: ./clapier [configuration file]


Is it useful ?
For the moment this is pure geek software in alpha version. It allows you to use
the Nabaztag for some other purpose than it was designed for. In the next versions
it will be more user friendly and implement useful functions for non technical
users. For example, you may have the possibility to use leds to monitor other
things than the weathercast and the number of mail received, such as your
download rate on P2P software or the number of online buddies on your IM client.
Presently the typical usage of this version (0.01) would be to :

-run Nabazclapier a first time to save the firmware and a ledfile
-copy those file somewhere and use them as 'customfirmware' and 'customledfile'
-run Nabazclapier again
-modify the ledfile "on the fly" to move the ear of the rabbit and light
 its led according to your needs.

I don't have a complete documentation of the structure of the ledfile, it is only
a draft for the moment. For exemple 26th and 27th byte of a ledfile seem to
control the ears, and the 11th byte seems to control the 'mail' blinking.


Configuration :
Settings are stored in the file /etc/clapier.conf or in the file specified as
argument on the command line. The following fields are used :

  logfile=/tmp/nabaztag.log
    this entry specifies the logging file for NabazClapier

  savedfirmware=/tmp/nabazfirm.ori
    this entry allows to save the "firmware" packet to a file.
 
  savedledfile=/tmp/nabazled.ori
    this entry allows to save the "led" packet to a file

  savevocal=true
    this entry allows to save incoming vocal messages

  savevocalpath=/tmp/
    this entry allows to set the directory in which the vocal messages
    will be saved

  customfirmware=/tmp/nabazfirm.new
    this entry allows to send your own "firmware" packet instead of those
    generated by the server. The specified file is read and sent to the
    Nabaztag when requested.

  customledfile=/tmp/nabazled.new
    this entry allows to send your own "led" packet instead of those
    generated by the server. The specified file is read and sent to the
    Nabaztag when requested.

  allowvocal=true
    this entry allows to let the "vocal" packet through when you are in
    proxy mode.

  noserver=true
    when this flag is set, the proxy does not forward the request to the server and
    directly sends the local copy of the ledfile and the firmware to the
    nabaztag. With this option, you don't need to be online to have
    the Nabaztag working anymore. But you need to save the firmware and the ledfile
    before.

  port=4453
    this entry allows you to specify which port to listen to. Default value
    is 4453  


TODO :
-better understanding of the protocol between the rabbit and the server.
-try to play back vocal messages.
-make a log-everything-mode that saves incoming packets and outgoing requests to
 files.
-better logging.
-sleep mode support
-save post vocal message
-write a better documentation in HTML.
-HTML user interface to configure NabazClapier.
-HTML interface to directly command leds and ears.
-possibility to light the leds according to the output of external programs.
 For example : right_ear = /usr/local/bin/check_emule_download
                weather_led = /usr/local/bin/check_cpu_load
-windows port.
-Mips-Linux port to make it run directly on D-Link ADSL routers.
-write a test process so that we can avoid software regression when modifying
 the code .


History :
-November 2005 : v0.01 first public release. this is an alpha release. It is not
really usable for non tehcnical users. Not user friendly.


Bugs :
-lot of unsupported features.
-sometime the sound is bad, probably because of delays in the proxy.
-some of the code is probably not safe and may produce crash under certain
 circumstances.
-this program shall not be used in an hostile environment (aka internet) use
 it only on trusted local networks.


Authors :
written by Jean-Grégoire Foulon ( jg DOT foulon AT gmail DOT com )
This project use code from :
-Nicolas Devillard (iniparser)
-FSF (linetd)
-Jef Poskanzer (micro_proxy)


SourceForge.net Logo