VoIP / ClientMatériel / AutoProvisioning

AutoProvisioning pourrait se traduire par "mise à jour automatique". Avec ce type de système, les téléphones sont capables de se mettre à jour automatiquement au démarrage, aussi bien au niveau logiciel (firmware) que configuration (login IAX, adresse du serveur, codec, dialplan, etc.)

Voici comment déployer des téléphones en masse afin qu'il se mettent à jour automatiquement.

Principe et installation manuelle (pour 3 ou 4 postes)

Coté serveur

  1. Installer un serveur HTTP (ou utiliser un serveur déjà existant). Une configuration type VirtualHost sur un serveur déjà existant fonctionne parfaitement.

  2. A la racine du serveur, copier le firmware, par exemple ipphone5-155-auf2.bin

  3. Pour chaque adresse MAC de téléphone, créer un fichier nommé prenom.nom.set selon le modèle suivant :

    # fichier prenom.nom.set
    BIN ipphone5-156-auf19.bin:15619
    CFG prenom.nom.txt:1
    END
    • Attention : le nom du fichier doit être en minuscules. En revanche, dans le fichier il faut mettre les mots clés tels que 'BIN' ou 'END' en majuscules, tout en début de ligne et suivis d'un seul espace.

  4. Créer le fichier de configuration prenom.nom.txt correspondant, selon le modèle modele-configuration-ipphone5.txt (ce fichier est auto-documenté). Attention : n'y mettez ni le nom d'utilisateur ni le mot de passe IAX car ce fichier sera téléchargeable par n'importe qui ayant accès au site web !

Note : les versions du firmware spécifiques à l'AUF gèrent le numéro de version sur 5 chiffres, et non pas 3 comme dans la documentation du constructeur. Cela permet d'indiquer 3 chiffres pour la version constructeur (1.56 à l'heure où je rédige) et 2 chiffres pour les modifications AUF (19 à l'heure ou je rédige encore)

Coté téléphone

  1. Pour chaque nouveau téléphone reçu, passer en mode DHCP
  2. Indiquer 'account' au niveau du 'type de mise à jour', et donner l'adresse du serveur avec http:// devant, par exemple http://voip.sn.auf (attention, on ne peut pas indiquer de sous-répertoire).

  3. Indiquez le nom d'utilisateur (prenom.nom) et le mot de passe de connexion IAX (il ne seront pas envoyés par le fichier CFG)
  4. Rebooter le téléphone. C'est tout !

Ce qui se passe ensuite

A chaque démarrage du téléphone, celui-ci va chercher un fichier prenom.nom.set (où prenom.nom est le nom du compte IAX choisi). En analysant ce fichier le téléphone sait s'il doit télécharger un nouveau firmware (micrologiciel) et/ou une nouvelle version de sa configuration. Il suffit donc de gérer ces informations sur le serveur pour que tous les téléphones se mettent automatiquement à jour via un simple redémarrage.

Un logiciel coté serveur pour automatiser tout cela

NB : ceci est un prototype, voir le TODO à la fin de ce document pour quelques améliorations possibles.

Une méthode similaire, mais basée sur les noms d'utilisateur plutôt que les adresses mac est utilisée à Dakar : ZAO/Dakar/Configuration/Voip

Principe du système proposé ici

Il s'agit d'un script CGI qui sait générer les fichiers .set et .cfg en fonction du dernier micrologiciel et de la dernière configuration présents dans le répertoire. Dès que le téléphone contacte le serveur web et récupère son fichier .set (ou .cfg), le reste de la procédure est identique à ce qui est indiqué au début de cette page.

Télécharger le logiciel

Les quelques fichiers nécessaires sont disponibles ici : http://git.auf.org/?p=ipphone-tools;a=tree;f=autoconfig

Installation

  1. créer un répertoire où seront placés le script CGI et les fichiers micrologiciels et configuration (/srv/www/voip-autoconfig dans la suite de ce document)

  2. monter un serveur Web (éventuellement un VirtualHost) avec les ré-écritures suivantes :

            RewriteEngine on
            RewriteRule ^/([0-9a-f-]{17}).(set|cfg) /autoconfig?$2=$1 [passthrough]
            ScriptAlias /autoconfig /srv/www/voip-autoconfig/autoconfig.cgi
  3. placer un micrologiciel dans le répertoire, avec un nom au format ipphone5-VVV-aufNN.bin, avec VVV le numéro de version du micrologiciel sur 3 chiffres et NN le numéro de sous-version spécifique AuF

    • faire un lien dessus avec le nom "micrologiciel" pour que ce soit celui utilisé par défaut
    • faire un lien dessus avec le nom "micrologiciel-xx-xx-xx-xx-xx-xx" si vous avez un firmware spécifique pour un téléphone particulier
  4. modifier le fichier "configuration-base" pour qu'il contiennent les données de configuration générales à tous les téléphones de votre implantation. Penser à modifier le numéro de série en cas de mise à jour (NUMERO_DE_SERIE_BASE:NNN).

  5. Si besoin, écrire un fichier configuration-xx-xx-xx-xx-xx-xx pour chaque téléphone IP qui aura une configuration spécifique

Déploiement d'un téléphone

  1. configurer le téléphone en mode "autoprovisioning" : indiquez type de mise à jour = MAC et adresse de mise à jour = http://nom.du.serveur au niveau de l'interface web de configuration de l'IP Phone.

  2. afin d'éviter d'avoir à envoyer des données confidentielles en clair via le script, indiquez le nom d'utilisateur et les différents mots de passe directement au niveau de l'interface web du téléphone (et non pas dans le fichier de configuration dédié au téléphone)
  3. rebooter le téléphone, il se met automatiquement à jour. C'est tout.

Utilisation avancée et petites astuces

En cas de soucis

TODO


CatégorieVoIP

VoIP/ClientMatériel/AutoProvisioning (dernière édition le 2008-03-05 10:06:06 par ThomasNoël)