Téléphone VOIP Wifi 'white' (blanc) de Free: linux, telnet, navigateur & serveur web dans 50 grammes de technologie...

Pour 60 euros t'as plus rien??? Si, tu as un téléphone Wifi, connectable au réseau Wifi de free (freephonie) mais aussi à d'autres réseaux sans fil, et qui avec quelques manipulations et tweaks peut se transformer en un adorable gadget pour Geeks sous linux avec noyau 2.6, avec serveur telnet, ssh, web, et navigateur web graphique. Le must de la VOIP... Communément appelé 'white' ou 'blanc' par opposition au 'black' (noir) qui fait aussi GSM, ce téléphone ne fait que du Wifi. Et pour ceux qui veulent, il est toujours possible de développer des applications embarquées.... Voyons comment customiser ce produit...

Ces notes reflètent une collection d'informations prélevée sur Freephonie, Arisme et Befi qui a porté links sur l'environnement graphique. Il manque encore probablement d'autres d'autres contributeurs que j'ai oubliés et je les prie de m'en excuser. J'y ai bien sur ajouté mes trouvailles et notes personnelles...

Installation

Free White Passé l'étape du déballage, j'ouvre le CD estampillé "Free" par curiosité. Rien d'autre qu'un document Word rédigé par Free et sans grand intéret. Une feuille A4 présente dans le colis est supposée donner le mode d'emploi du téléphone. Brancher, allumer et attendre. 15 minutes plus tard, rien ne va plus. Il ne s'est rien passé. Quelques coups de Goo(geule) plus tard, j'apprend que je suis le xième à m'être fait prendre au jeu de la fausse notice de Free. J'ai trouvé ma solution ICI

En fait, il faut brancher effectivement le cable USB, puis allumer le téléphone puis appuyer sur la touche "Menu", puis "Fleche Haute", puis "FreenetSync", puis "activate". Après update du téléphone, reboot, visite des menus et repassage de l'interface en Français nous voici avec un téléphone Wifi opérationnel. Bien sur, il faut pour tout cela que le compte sip soit activé dans l'interface de votre compte free...

Vous pourrez découvrir les raccourcis claviers ICI.

Utilisation du téléphone sur un autre réseau que freephonie

Parce que le préliminaire à la customisation du white est de le faire travailler sur un autre réseau que freephonie, nous allons tout d'abord le déclarer sur la partie "informatique" du mimo. Cette opération va se faire en deux étapes. La première va consister à créer un fournisseur SIP alternatif, qui sera utilisé pour tous les autres profils wifi que celui utilisé par défaut pour connexion sur Freebox. La seconde, va consister en la création d'un profil Wifi alternatif et son association avec le profil sip considéré.

En effet, pour accéder au téléphone, il va falloir le toucher par son adresse IP. Or, si vous appuyez sur la touche "infos" de votre téléphone, vous verrez que l'adresse IP attribuée à votre white est une adresse privée qui n'est pas dans votre réseau local. Elle est dans le Vlan de freephonie....

Compte SIP

Qu'à cela ne tienne, nous allons tout changer ;). Pour cela, il faut aller dans le menu "Profil", puis "Compte SIP". Nous allons sélectionner le second profil, puis "Options" et "Editer" et remplir comme suit :

  • Numéro de téléphone : votre numéro free
  • Identifiant : votre numéro SIP
  • Mot de passe : MDP entré dans l'interface free sur 'mon compte'
  • Domaine SIP : freephonie.net
  • Proxy : freephonie.net
  • Port du proxy : 5060
  • Outbound address : freephonie.net
  • Outbound port : 5060
  • Port local : 5060
  • Intervalle d'enregistrement : 3600 s
  • Codec : auto
  • Pkt time(ms) : 30
  • Outband DTMF : on

Vous pouvez ensuite nommer ce compte "Free". Il vous permettra de vous connecter de n'importe quel acces Wifi ouvert, ou d'un réseau dont vous conaissez les clés WEP ou WPA.

Réseau Wifi

Pour déclarer un réseau Wifi, il faut aller dans le menu "Profil", puis "Réseau". Nous allons sélectionner le premier profil (normalement libre), puis "Options" et "Editer" et remplir comme suit :

Paramètres sans fil :

  • ESSID, liste réseaux et sélectionner votre réseau Wifi
  • Laissez le paramètre Débit par défaut
  • Sécurité : Sélectionnez le type de sécurité souhaité (Web ou WPA) et entrez la clé.

Paramètres IP :

  • Laisser par défaut sauf si votre réseau a des réglages spéciaux

Choix du compte

  • Sélectionnez le compte que vous avez créé à l'étape précédente (normalement "free")

Paramètres NAT

  • Laisser par défaut sauf si votre réseau a des réglages spéciaux

Activation du réseau

Activez ensuite ce réseau en allant dans la liste des réseaux et en sélectionant l'option "5" : échanger sur le réseau que vous souhaitez activer. Je sais, le terme échanger est curieux, mais bon...

Démarrage des services

Le white possède un serveur http et un serveur telnet, mais qui ne sont pas activés pas défaut. Pour les activer (ou au moins jusque au prochain reboot) il faut taper:

  • Démarrage HTTPD: *#932484 (*#webgui)
  • Démarrage Telnet: *#8356381 (*#telnet1)

Il vous suffit ensuite de récupérer l'adresse IP de votre téléphone (en appuyant sur 'infos') et de vous y connecter soit en telnet , soit en http.

Les logins / passwords par défaut sont "admin" / "ahy5meeY" , ou "user" / "free"

Interface web

L'interface web va vous permettre de configurer votre téléphone beaucoup plus simplement qu'avec le clavier intégré. Beaucoup de choses sont accessibles : sauvegarde des paramètres (ce que je vous recommande!!!), réglages réseau et SIP, edition de l'annuaire, mise à jour du firmware, changement du mot de passe, ... On y accède par un navigateur (firefox bien sur), directement sur l'adresse du téléphone.

Interface telnet

Là ou cela devient rigolo, c'est sous shell. On peut y faire beaucoup de choses, mais faites très attention, c'est destructif.... On y découvre des choses étonnantes...

BusyBox v1.01 (2006.12.15-09:25+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
# uname -a
Linux (none) 2.6.11.7-bcm1160 #1 Fri Dec 15 17:21:26 CST 2006 armv5tejb unknown
# ls /
bin       homebrew  nvdata    sbin      usr       voip
dev       lib       poly      share     usrdata   webroot
etc       music     proc      tmp       var
# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/mtdblock7           13.6M     12.0M      1.6M  88% /
/dev/mtdblock3            1.4M    104.0k      1.3M   7% /nvdata
#

Activation permanente du serveur web et du serveur telnet

Il est très facile d'activer de facon définitive les 2 serveurs. Pour cela, et sous shell à l'aide de l'editeur VI (et oui, votr téléphone possède VI ;), mettre httpd=1 et telnetd=1 dans /nvdata/voip/phone.cfg puis redémarrer ... avec la commande reboot!

Il est possible que cette commande, tout comme d'ailleurs l'activation manuelle avec les numéros spéciaux ait une incidence sur le temps de décharge de la batterie. En effet, j'ai constaté que le téléphone se déchargait pus vite dans ces conditions, et je ne l'ai personnellement pas laissé activé. Il est même conseillé de rebooter après l'avoir utilisé activé pour être sur de le laiser désactivé.

Installation de l'environnement de test

Pour pousser plus loin nos investigations, nous allons devoir installer un environnement de test, qui va nous permettre dans lancer un shell sur l'écran du téléphone. Voici le mode opératoire, a faire sous shell (un grand merci à http://arisme.free.fr/Whitephone/) :

cd /tmp
wget http://arisme.free.fr/Whitephone/repository/bootstrap/bootstrap.sh
chmod a+x bootstrap.sh
./bootstrap.sh
. /homebrew/env
ipkg install jfbterm-launcher
ipkg install lynx
reboot

Cet environnement de test se lance ensuite par **#1# sur le téléphone. Et hop, sous shell sur le téléphone... Pour quitter, faire "control" + D (touche "INFOS" et D), ou 'exit'.

Il est à noter qu'Arisme met à disposition de nombreux packages, qui peuvent être installés très simplement à l'aide de la commande ipkg : la liste sur http://arisme.free.fr/Whitephone/repository/. On y trouve notamment mutt (agent de lecture de courrier au format texte), lynx (navigateur web au format texte), ssh, tar...

Installation type d'un nouveau package:

. /homebrew/env
ipkg install mon_package_a_installer

Nota : L'environnement de test peut être mis à jour avec les commandes suivantes :

. /homebrew/env
ipkg update
ipkg upgrade

Re-Nota : Suppression de l'environnement de test

. /homebrew/env
ipkg remove lynx
ipkg remove libopenssl
ipkg remove libz
ipkg remove libncurses
ipkg remove jfbterm_launcher
ipkg remove jfbterm
ipkg remove libutil
ipkg remove gunzip
ipkg remove launcher
reboot

Installation du browser

Le browser s'installe avec la procédure suivante :

cd /homebrew/bin
wget http://www.ch-at.de/befi/free/lib
wget http://www.ch-at.de/befi/free/links
chmod a+x lib
chmod a+x links

Lancement du browser:
**#1# sur le clavier du téléphone, puis taper "lib" et Ok... (ok, c'est le bouton du milieu)

Pour appeler le menu du brower, appuyez sur la touche "verte". Pour quitter, 'q' ou 'menu', exit.

Et ca marche??? Bah oui!!! J'ai oublié un petit détail.. Ca téléphone toujours....

Problèmes et solutions

Ecran noir

J'ai constaté à plusieurs reprises, après avoir laissé mon téléphone plusieurs heures sans surveillance avec telnetd et httpd activé, qu'il ne répondait plus. Impossible de l'allumer!

Solution: Enlever la batterie, brancher le cable de charge USB, puis remettre la batterie et l'allumer. Ca a fonctionné à tout les coups...

Redémarrage (reset)

Il est possible de faire un reset sur le white en l'allumant (il faut donc partir d'un téléphone éteint) en appuyant sur les touches 'infos', puis '9' (en gardant appuyé infos) et 'on' (touche rouge), en gardant appuyé les 2 précédentes.

Diagnostiques du téléphone

On peut appeller un menu diags du téléphone en faisant sur le clavier *#962364

Sonneries personnalisées

Il est possible d'installer des sonneries personnalisées au format Midifile. Elles ne doivent pas bouffer trop de polyphonie (car aparemment, le synthé intégré n'est pas capable de rendre plus de 16 voies simultanées). Ces sonneries doivent être placées dans /music/midi/melody (avec wget sur un serveur ftp par exemple). Il faut ensuite editer le fichier /music/ring.ini de la façon suivante :

En début de fichier, dans la section Main, modifier le compteur pour qu'il soit représentatif du nombre de sonneries installées:

[Main]
Counter=27

En fin de fichier, ajouter votre nouvelle sonnerie

[Ring27]
Type=0
Name=Pools
Path=/music/midi/melody/pools.mid

Ceci vous permettra de titiller votre neurone de Geek musicien (ici, Pools de Steps Ahead...).

Navigation spéciale petit écran

(d'après un excellent article ICI)

cd /homebrew/bin
echo "  links -fake-user-agent Nokia6680 -enable-javascript 0 -g \
-display-optimize 1 -menu-font-size 10 -dither-letters 1 \
-html-user-font-size 10 http://kzar.net/g.php" > g2