ajout d'un exemple de systeme d'autoconfiguration via http
[ipphone-tools.git] / autoconfig / LISEZMOI.txt
1 Système d'autoconfiguration des IP Phone 5 AUF 
2
3 NB : ceci est un _prototype_ largement améliorable, voir le TODO à la fin de ce
4 document.
5
6 Rappel sur le fonctionnement de l'autoprovisioning sur les IP Phone 5 :
7 =======================================================================
8 1. on configure le téléphone en mode autoconfig avec 
9            type de mise à jour = MAC
10            adresse de mise à jour = http://nom.du.serveur
11 2. lorsque le téléphone démarre, il cherche le fichier
12    http://nom.du.serveur/xx-xx-xx-xx-xx-xx.set où xx-xx-xx-xx-xx-xx 
13    est son adresse MAC. Ce fichier contient entre autre deux lignes :
14            BIN firmware:version_f
15            CFG config:version_c
16    avec :
17            firmware = le fichier binaire du micrologiciel du téléphone
18            version_f = le numéro de version du micrologiciel, sur 5 chiffres
19            config = le fichier de configuration du téléphone (fichier texte)
20            version_c = le numéro de version de la configuration
21 3. Si le numéro de version du micrologiciel est supérieur à la version
22    actuellement présente dans le téléphone, celui-ci télécharge le
23    fichier binaire (http://nom.du.serveur/firmware) et redémarre dessus.
24 4. Si la version de la configuration est supérieure à la version actuelle le
25    téléphone télécharge le fichier http://nom.du.serveur/config, met à jour 
26    sa configuration avec les nouvelles données puis redémarre.
27
28
29 Principe du système proposé ici :
30 =================================
31 Il s'agit d'un script CGI qui sait générer les fichiers .set et .cfg en
32 fonction du dernier micrologiciel et de la dernière configuration présents dans
33 le répertoire.
34
35
36 Télécharger le logiciel :
37 =========================
38 Il est pour l'instant disponible uniquement via Subversion. Si vous ne l'avez
39 pas déjà fait, installez "subversion" sur votre poste de travail (ou même sur
40 le serveur cible) avec "aptitude install subversion"
41
42 Puis téléchargez le répertoire avec :
43   svn co http://trac.sn.auf.org/svn/ipphone/autoconfig
44
45 Ça vous créera un répertoire "autoconfig" contenant le script, entre autre.
46 Faites alors l'installation en copiant les fichiers depuis ce répertoire (voir
47 ci-dessous). Si une nouvelle version du script est disponible, il vous suffira
48 de revenir dans ce répertoire source et de taper "svn update" pour l'obtenir.
49
50
51 Installation :
52 ==============
53 1. créer un répertoire où seront placés le script CGI et les fichiers
54    micrologiciels et configuration (/srv/www/voip-autoconfig dans la suite de ce
55    document)
56 2. monter un serveur Web (éventuellement un VirtualHost) avec les ré-écritures
57    suivantes :
58         RewriteEngine on
59         RewriteRule ^/([0-9a-f-]{17}).(set|cfg) /autoconfig?$2=$1 [passthrough]
60         ScriptAlias /autoconfig /srv/www/voip-autoconfig/autoconfig.cgi
61 3. placer un micrologiciel dans le répertoire, avec un nom au format
62    ipphone5-VVV-aufNN.bin, avec VVV le numéro de version du micrologiciel sur
63    3 chiffres et NN le numéro de sous-version spécifique AuF
64 3a. faire un lien dessus avec le nom "micrologiciel" pour que ce soit celui
65     utilisé par défaut
66 3b. faire un lien dessus avec le nom "micrologiciel-xx-xx-xx-xx-xx-xx" si vous
67     voulez qu'un téléphone spécifique l'utilise
68 4. placer un fichier "configuration-base" contenant les données de configuration
69    générales à tous les téléphones. Penser à modifier le numéro de série
70    en cas de mise à jour (NUMERO_DE_SERIE_BASE:NNN)
71 5. Si besoin, écrire un fichier configuration-xx-xx-xx-xx-xx-xx pour
72    chaque téléphone IP
73
74 Déploiement d'un téléphone :
75 ============================
76 1. configurer le téléphone en mode "autoprovisioning" (type de mise à jour = MAC
77    et adresse de mise à jour = http://nom.du.serveur au niveau de l'interface
78    web de configuration de l'IP Phone)
79 2. afin d'éviter d'avoir à envoyer des données confidentielles en clair via le
80    script, indiquez le nom d'utilisateur et les différents mots de passe 
81    directement au niveau de l'interface web du téléphone (et non pas dans
82    le fichier de configuration dédié au téléphone)
83 3. rebooter le téléphone, il doit se mettre à jour. C'est tout.
84
85 Utilisation avancée :
86 ====================
87 - Préférez utiliser des liens symboliques pour le micrologiciel, par exemple:
88             micrologiciel-stable -> ipphone5-156-auf4.bin
89             micrologiciel-test -> ipphone5-156-auf5.bin
90 - Pour proposer un micrologiciel spécifique à un téléphone :
91             micrologiciel-00-09-45-ba-00-01 -> micrologiciel-test
92
93
94 En cas de soucis :
95 ==================
96 - Regardez les logs apache
97 - Faites des wget pour voir ce qui se passe
98 - rappel : ce script CGI est une proposition, un prototype. S'il plante,
99   demandez de l'aide sur la liste technique de l'AUF ;)
100
101 TODO :
102 ======
103 - vérifier que l'IP qui fait les requêtes correspond bien à l'adresse MAC,
104   ça serait le minimum de sécurité acceptable si on transmet des mots de
105   passe dans les configurations
106 - permettre des configurations "groupes" via des configuration-xx-xx
107   où "xx-xx" est le début de l'adresse MAC (xx, xx-xx, xx-xx-xx, etc)
108 - adapter pour les autres types de mise à jour (IP, username, etc.)
109 - virer les bachismes (marche pas avec dash qui sera le shell par
110   défaut dans Etch je crois) => fait
111 - packager en .deb
112 - trouver le moyen de connaitre le numéro de version de la configuration
113   actuellement stockée dans un IP phone 5 (affichage sur l'écran
114   lors du boot ?) => plutôt supprimer le mot "VoIP" de l'affichage lors de
115   l'appui sur [Local IP] et ajouter la version de la config' en fin de ligne
116