Skip to content
mqu edited this page Feb 3, 2013 · 33 revisions

Vous voici sur la page d'accueil du Wiki : Mafreebox. Toute contribution en tout genre sera acceptée avec ma plus grande bénédiction. N'hésitez pas à cloner, github adore ça, ... moi aussi.

Mais quezako:

Mafreebox est une implémentation PHP de l'API JSON permettant l'accès à l'interface d'administration de la Freebox. Cette interface est accessible depuis votre domicile à l'adresse : http://mafreebox.freebox.fr/ et permet de gérer les différents éléments de la Freebox V6, dite Freebox Révolution.

Il est aussi possible de rendre cette interface visible depuis l'Internet, ce qui vous permettra de télé-administrer ou superviser votre Freebox depuis l'extérieur (machine virtuelle, cloud, ...). Généralement, l'interface sera visible avec votre adresse IP externe : http:///

Les fonctions de téléchargement sont régulièrement utilisées pour compenser le manque de débit des lignes ADSL qui sont particulièrement assymétrique : débit très faible en upload (remontée d'information). L'idée consiste a démarrer les transferts volumineux en pleine nuit, ce qui n'encombre pas la bande passante pendant la journée. Hormis l’asynchronisme du téléchargement, cette méthode ne présente que des avantages.

L'API repose principalement sur le standard JSON et facilite le développement et l’interfaçage avec les langages de développement. Cette API peut évoluer au gré des évolutions du firmware de la Freebox. Mais jusqu'à maintenant il n'y a eu que peu d'évolutions bloquantes. Nous ne pourrons garantir une pérennité que dans la mesure du possible. Nul n'est tenu à l'impossible.

Cette Freebox est constituée de 2 boitiers :

  • un boitier d'accès à Internet (ADSL ou fibre). Il contient un disque dur de 250Go,
  • un boitier multimédia comprenant un lecteur blueray et une interface DVI.

Documentation:

L'interface d'administration permet de gérer les fonctions suivantes réparties en modules, implémentant des fonctions JSON :

  • Account : account basic http authentication account.unknown
  • DHCP : Gestion du serveur DHCP,
  • Download : Gestionnaire de téléchargement ftp/http/torrent.
  • Ftp : gestion du serveur FTP,
  • Fs : Systeme de fichiers : Fonctions permettant de lister et de gérer les fichiers du NAS.
  • Fw : Firewall : Fonctions permettant d'interagir avec le firewall.
  • Igd : UPnP IGD : Fonctions permettant de configurer l'UPnP IGD (Internet Gateway Device).
  • IPv6 : Fonctions permettant de configurer IPv6
  • Lan : Fonctions permettant de configurer le réseau LAN.
  • Lcd : Afficheur Fonctions permettant de controler l'afficheur de la Freebox.
  • Phone : Gestion de la ligne téléphonique analogique et de la base DECT.
  • Share : Partage Windows : Fonctions permettant d'interagir avec la fonction de partage Windows de la Freebox.
  • Storage : Systeme de stockage : Gestion du disque dur interne et des disques externe connectés au NAS.
  • System : fonctions système de la Freebox,
  • User : Utilisateurs : Permet de modifier les paramétres utilisateur du boîtier NAS.
  • WiFi : Fonctions permettant de paramétrer le réseau sans-fil.

Organisation du code :

  • la classe Mafreebox assure les services de base : login, execution des requetes JSON,
  • les différentes sous-classes, par délégation implémentent les différents services.

Actualité :

  • janvier 2013 : suite à la découverte d'une faille de sécurité de type CSRF, un nouvel attribut doit être transmis dans le header de certaines requêtes. Il s'agit de l'attribut : X-FBX-CSRF-Token. Cet attribut est géré par cette bibliothèque.

Liens:

  • documentation originale embarquée sur le firmware de la Freebox au format HTML. Cette documentation cachée a au fil des évolutions du firmware été supprimée. Il conviendra de la convertir et de l'intégrer à ce Wiki (ou un autre).
  • documentation originale concernant l'API Freebox.
Clone this wiki locally