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 utilise du code GPL d'autres projet open source, par conséquent, il est aussi sous licence GPL.

A quoi ca sert ?
NabazClapier est un proxy conçu pour ajouter des fonctionnalités a votre lapin wifi prefere. Il permet de filtrer et d'intercepter les paquets émis par le site de violet(c) (www.nabaztag.com). Il peut aussi remplacer completement le site de violet. Un outil nomme LedPatch est fourni avec Clapier, il permet de changer les fichiers led (et donc d'allumer les leds du lapin) sans editeur hexa.

Où le trouver ?
Vous pouvez télécharger la derniere version sur http://sourceforge.net/projects/nabaztools


Qu'est ce qu'un Nabaztag ?
Devinez ! Ou allez sur http://www.nabaztag.com pour le découvrir.


Compatibilité :
NabazClapier fonctionne sur Mac OS X et Linux, il est censé fonctionner sur les autres BSD et Unix. Une version windows (cygwin) est aussi fournie, mais elle a été assez peu testée.


Compilation :
Il suffit de taper make.
Si vous désirez tester l'interface web expérimentale (désactivée par défaut), vous devez installer la bibliothèque libHTTP et activer l'option -DWEB_UI lors de la compilation.


Utilisation :
clapier [fichier de configuration]


Comment ca marche ?
NabazClapier intercepte les paquets envoyés par votre Nabaztag et les transmet éventuellement au site de Violet. De même, les paquets en provenance de Nabaztag.com sont filtrés et peuvent, ou non, arriver a votre Nabaztag, selon leurs types et les réglages que vous avez fait. Pour que cela marche, vous devez utiliser la machine sur laquelle tourne le clapier en tant que proxy pour votre Nabaztag :
-démarrez votre Nabaztag en mode AdHoc (refferez vous a la documentation)
-cochez la case 'use proxy'
-entrez l'IP locale de votre machine dans le champ 'proxy'
-entrez le numéro de port sur lequel le clapier attend les connexions (4453)
-lancez ./clapier [fichier de conf]

A quoi ça sert ?
Pour le moment c'est plutôt un outil pour les geeks, cela permet de détourner le Nabaztag de ses fonctions premières. Les prochaines versions devraient être un peu plus facile d'utilisation et permettre aux utilisateurs lambdas de profiter de nouvelles fonctionnalités. Par exemple, la possibilité d'indiquer l'upload et le download de votre logiciel P2P préféré avec les oreilles du lapin ou bien le nombre de contacts en ligne sur votre logiciel de messagerie instantanée.
Pour l'instant un usage typique ressemblerait a ça :
-lancer clapier une première fois pour sauver des fichiers firmware et led
-copier ces fichiers et renommez les pour les utiliser en tant que
'customfirmware' et 'customledfile'
-modifier les fichiers ledfile à la volée selon vos besoins
-lancer des commandes et allumer les leds ou bouger les oreilles en fonction
de leur sortie (nouveau).
-uploader vos programmes ASM sur votre Nabaztag

J'ai deviné une partie du format des fichiers led par reverse engineering,
l'outil LedPatch permet d'allumer des leds et de faire bouger les oreilles.
Une documentation et un programmes plus exacts pourraient être écrits en
consultant la documentation http://fr.groups.yahoo.com/group/nabaztag_api/.
Avis aux amateurs.


Configuration :
Les réglages sont stockés dans le fichier /etc/clapier.conf. Le fichier de
configuration peut aussi être spécifié via la ligne de commande.
Voici la signification des champs présents :

logfile=/tmp/nabaztag.log
Cette entrée spécifie l'emplacement du fichier de log.

port=4453
Le port sur lequel écoute le proxy, la valeur par défaut est 4453.
Vous devez réglez le Nabaztag pour utiliser le même port.

address=127.0.0.1
L'adresse sur laquelle le proxy écoutera. Si ce paramètre n'est pas présent, Clapier écoute sur tous les interfaces réseau. Cela est
déconseillé si vous n'êtes pas derrière un routeur car Clapier n'a pas été fait pour un environnement non sécurisé comme internet.

webserver=TRUE
Ce champ active l'interface web qui permet de configurer Clapier via une interface web. Vous devez compiler Clapier avec le support web
pour pouvoir activer cette option.

confport=4454
Port sur lequel l'interface web attend des clients. La valeur par défaut est 4454, cela veut dire que pour régler l'interface web, vous devez utilisez l'url htpp://localhost:4454 avec votre browser.

savedfirmware=/tmp/nabazfirm.ori
Ce paramètre permet de sauver le paquet "firmware" dans un fichier.

savedledfile=/tmp/nabazled.ori
Ce paramètre permet de sauver le paquet "led" dans un fichier.

savevocal=true
Ce paramètre permet de sauver les messages vocaux dans des fichiers.

savevocalpath=/tmp/
Répertoire dans lequel seront sauvés les messages vocaux.

customvocal=/tmp/nabazvocal.new
Ce parametre permet d'envoyer des messages vocaux au lapin. Cette fonctionnalite est expérimentale. Le lapin a de fortes chances de
rester bloqué à clignoter jusqu'à ce qu'on le reboote. Ce fichier sera effacé une fois qu'il a ete joué.

customfirmware=/tmp/nabazfirm.new
Ce paramètre permet d'envoyer un paquet "firmware" au lapin. Cela permet de tester vos programmes pour la VM ou de vous passer du serveur Violet en fournissant le firmware original.

customledfile=/tmp/nabazled.new
Ce paramètre permet d'envoyer un paquet "led" au lapin. C'est ce fichier qui permet de faire clignoter les leds ou de bouger les oreilles. Il est envoyé a chaque fois que le lapin le demande.

custompostvoc=/tmp/nabazpvc.new
Ce paramètre permet d'envoyer un paquet "postvocal" au lapin. Ce fichier est demandé/envoyé après qu'un message vocal ait été joué.

earfile=/tmp/nabazear.log
Ce fichier contient la position des oreilles du Nabaztag telle qu'elle est envoyée au site de Violet.

allowvocal=true
Ce paramètre autorise les messages vocaux lorsque clapier fonctionne en mode proxy.

noserver=true
Quand cette option est activée, Clapier n'envoie pas les requêtes au serveur de Violet mais envoie directement les paquets 'customledfile'
et 'customfirmware'. En théorie il est possible de ne pas être connecté à internet quand cette option est activée. En pratique il vous faudra pouvoir répondre a la requête DNS du Nabaztag, même avec des données completement fausses, il lui faut juste une réponse. A vous d'indiquer un serveur DNS accessible au lapin.

cmd_exec_delay=n
Période d'attente entre le lancement des commandes permettant de mettre à jour les leds et les oreilles. Si n == 0 aucune commande n'est lancée. On peut mettre une valeur de 30 ou 60 par exemple.

weather_cmd
Nom de la commande lancée pour obtenir l'état de la led météo [0-5]

rightear_cmd
Nom de la commande lancée pour obtenir la position de l'oreille droite [0-15]

leftear_cmd
nom de la commande lancée pour obtenir la position de l'oreille gauche [0-15]

mail_cmd
Nom de la commande lancée pour obtenir l'état de la led courrier [0-3]

traffic_cmd
Nom de la commande lancée pour obtenir l'état de la led traffic [0-7]

stock_cmd
Nom de la commande lancée pour obtenir l'état de la led bourse [0-3]

pollution_cmd
Nom de la commande lancée pour obtenir l'état de la led pollution [0-3]


Commandes externes :
Clapier vous permet de lancer des commandes externes et d'allumer les leds en fonction de ces résultats. La commande lancée est censée afficher un entier entre 0 et n sur la sortie standard. n dépend de l'usage que vous voulez faire de la commande : par exemple si vous utiliser une commande pour faire bouger l'oreille gauche du lapin, le nombre affiché doit se trouver entre 0 et 15, car l'oreille peut avoir 16 positions. Par contre il doit se trouver entre 0 et 5 pour afficher la météo car il n'y que 6 façons différentes de faire clignoter les leds de la météo.
Pour que les commandes externes soient utilisables, vous devez forcement fournir un fichier customledfile. Ce fichier sera modifié toutes les 'cmd_exec_delay' secondes quand les commandes externes seront lancées.

Pour l'instant clapier n'est fourni qu'avec 2 commandes externes, les utilisateurs sont invités à contribuer au projet en écrivant d'autres commandes/scripts qui pourraient servir à d'autres personnes. N'hésitez pas à envoyer vos scripts si vous pensez qu'ils peuvent être utiles à d'autres personnes.

dummy_cmd [i]
Il s'agit d'une commande exemple qui affiche l'entier i.

donkey_cmd [host [port]]
Cette commande affiche le nombre de fichiers téléchargés grace à MLDonkey.
host et port sont la machine et le port sur lequel MLDonkey attend des commandes, les valeurs par defaut sont 127.0.0.1 et 4000.
Pour que cette commande fonctionne, il faut désactiver l'autocommit dans MLDonkey.


Bugs :
-plein de fonctionnalités à ajouter.
-Le son n'est pas toujours de bonnes qualités, sans doute à cause de lenteurs
dans le proxy
-Ce programme n'est pas assez fiable pour être accessible depuis l'extérieur. Utilisez un firewall
-Il faut parfois relancer Clapier quand on modifie le fichier de configuration.

Auteurs :
Ecrit par Jean-Grégoire Foulon ( jg DOT foulon AT gmail DOTcom )
lapinou offert par Karine Collet
Ce projet utilise du code de :
-Nicolas Devillard (iniparser)
-Marc Welz (linetd)
-Jef Poskanzer (micro_proxy)


SourceForge.net Logo