Modifications entre les versions 28 et 30 (s'étendant sur 2 versions)
Version 28 à la date du 2008-02-23 06:30:27
Taille: 10547
Commentaire: typo
Version 30 à la date du 2008-02-27 10:49:24
Taille: 7919
Éditeur: ThomasNoël
Commentaire: pour mémoire
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
Mes notes pour un backport de Asterisk 1.4.x (Debian/Sid) vers Etch -- ThomasNoël Pour mémoire, mes notes pour le backport de Asterisk 1.4.x (Debian/Sid) vers Etch -- ThomasNoël
Ligne 5: Ligne 5:
Je veux compiler une version sans y intégrer les trucs inutiles, notamment : Une version 1.4 sans y intégrer les trucs inutiles, notamment :
Ligne 14: Ligne 14:
Ensuite, on se base sur ce qui est disponible dans Sid, voir : http://packages.qa.debian.org/a/asterisk.html (s'abonner aux RSS si vous avez envie de voir comment les dev Debian ont du mal avec asterisk). Ensuite, on se base sur ce qui est disponible dans Sid ou Testing, voir : http://packages.qa.debian.org/a/asterisk.html (s'abonner aux RSS si vous avez envie de voir comment les dev Debian ont du mal avec asterisk).
Ligne 18: Ligne 18:
Mis en place dans `deb http://apt.auf.org etch voip-test`

'''JE CHERCHE DES VOLONTAIRES''' pour tester en production. Il suffit d'être capable, si ça se passe mal (cas peu probable), de repasser en asterisk 1.2. Donc il suffit de faire un backup de son /etc/asterisk et de garder sa clé privée dans un coin, c'est tout...

Procédure pour les volontaires :

 * me contacter (un ptit coup de jabber en parallèle pendant l'upgrade, si ça vous rassure)
 * faire des backups (copies) de /etc/asterisk et /var/lib/asterisk/keys
 * ajouter dans les sources : `deb http://apt.auf.org etch auf voip-test`
 * `aptitude update; aptitude install auf-keyring; aptitude update` : mise à jour des sources et ajout de la clé du dépot AUF
 * `aptitude -d dist-upgrade` : téléchargement des mises à jour à l'avance pour limiter la durée de la rupture de service qui suit ('''option -d : pas d'installation, juste download''')
 * `/etc/init.d/asterisk stop` : '''ARRET DU SERVICE VOIP''' (durée à prévoir : 5 minutes)
 * `aptitude dist-upgrade` : mise à jour d'asterisk et paquets dépendants (vérifiez la liste des paquets proposés à l'update avant de valider, en cas de doute contactez moi... avant de valider)
 * pendant de dist-upgrade : accepter toutes les demandes de mise à jour de fichier (/etc/asterisk/*.conf et /etc/default/asterisk)
 * comme d'habitude après toute ''upgrade'' modifiant des fichiers, lancer un `find /etc/ -name "*.dpkg*" -o -name "*.ucf*"` ; cela vous donnera les modifications à intégrer avant de relancer votre service<<FootNote(comme par exemple le `logrotate.d/asterisk` à remanier pour y réintégrer votre génération de stats automatiques, le cas échéant)>>
 * indiquer RUNASTERISK=yes dans /etc/default/asterisk
 * `/etc/init.d/asterisk start` : '''ça doit re-marcher à partir de là'''
Mis en place dans `deb http://apt.auf.org etch voip`
Ligne 50: Ligne 34:
J'ai packagé la version 2.0, compatible avec asterisk 1.4. Elle sait faire beaucoup de choses de plus que la version que nous avons actuellement avec 1.2 ; cependant il va falloir étudier les regressions. J'ai packagé la version 2.0.1, compatible avec asterisk 1.4. Pas de regression constatée, mais les flags d'option ont changé !
Ligne 52: Ligne 36:
Note : 2.0-1 est une version patchée "AUF" pour annoncer les départs et les arrivées dans une conférence. Le patch, presque pas crapoteux, sera soumis à l'upstream un jour de pluie. Note : 2.0.1-1 est une version patchée "AUF" pour annoncer les départs et les arrivées dans une conférence. Le patch, presque pas crapoteux, a été soumis à l'upstream qui ne l'intègre pas parce qu'ils veulent un truc plus générique, configurable et tout et tout. C'est pas grave.
Ligne 61: Ligne 45:
Ligne 64: Ligne 49:
 * Il est très très très très probable que je ne parvienne pas, vu mes ressources, à faire un package qui permette un bel upgrade "hip hop" depuis le 1.2. Y'a trop de trucs modifiés (par asterisk). Je passerais sans doute infiniment moins de temps à documenter une réinstallation (dire ce qui doit être mis de coté avant un purge+install), qui aura "l'avantage" de reprendre un peu le bazar à zéro... Désolé les gars, mais bon.
Ligne 68: Ligne 52:
 * l'asterisk de sid intègre le patch '''bristuff''' : voir si ça inclue DPickUp et autres modifs de bristuff (i.e. on ne doit pas avoir de regression avec l'asterisk-classic que nous utilisons actuellement).
 * d'une façon générale, étudier les regressions (c'est pas la doc d'asterisk qui va nous les dire)
Ligne 71: Ligne 53:
 * essayer asterisk-ooh323c pour voir si ça tourne avec les visio polycom. Un volontaire ?
Ligne 72: Ligne 55:
= Tests en cours =
= Tests effectués =
Ligne 110: Ligne 94:
 * Questions debconf : ok (on les passe vu qu'on a pas encore  * Questions debconf : ok, juste alerte comme quoi la clé n'est pas là, c'est normal.
Ligne 115: Ligne 99:
 * '''`dpkg-reconfigule asterisk-config-auf`''' : ok (asterisk-config-auf >= 1.4-8)  * '''`dpkg-reconfigule asterisk-config-auf`''' : ok
Ligne 121: Ligne 105:
   * conference : ça marche (version 2.0-1)
   * pickup (mais est-ce utilisé ?) : à revérifier, mais ça a l'air ok
   * conference : ok (version 2.0-1)
   * pickup : ok
Ligne 137: Ligne 121:

--(Reste à faire : déplacement automatique de .key vers /usr/share... il faut le faire le plus tôt possible, sans doute dans asterisk-config-auf/debian/config (dans preinst ça marche pooh... bah...) ?)-- '''ok''' dans asterisk-config-auf/debian/config oui je sais, bof mais je suis preneur d'une solution (je précise : pas d'une "idée" de solution, d'une solution testée et validée ;) )
 * déplacement automatique de .key vers /usr/share/asterisk/keys : ok via asterisk-config-auf/debian/config (dans preinst ça marche pooh... bah...)
Ligne 144: Ligne 127:
{{{  {{{
Ligne 151: Ligne 134:
 * Antenne de HCMV faite le 25 février 2008 : aucun souci
 * CNF de HCMV faite le 25 février 2008 : aucun souci

Pour mémoire, mes notes pour le backport de Asterisk 1.4.x (Debian/Sid) vers Etch -- ThomasNoël

Objectifs

Une version 1.4 sans y intégrer les trucs inutiles, notamment :

  • pas de h323 dépendant de openh323 (on utilisera asterisk-ooh323c en cas de besoin de h323)
  • pas de liaisons ODBC, MSSQL ou PgSQL, inutiles pour nous
  • pas de consoles kde, qt ou gtk
  • pas de gestion des voicemail en IMAP ou ODBC
  • en revanche, on va ajouter une dépendance sur gnutls apparemment nécessaire pour iksemel (jabber)

Pour cela, on prend une Etch VIERGE. Attention c'est important : la compilation d'asterisk peut varier si tel ou tel paquet est déjà installé. En effet, le ./configure active les modules s'il peut les compiler, et il est difficile de desactiver certains (c'est pas les --with/--without du ./configure qui font tout, c'est beau).

Ensuite, on se base sur ce qui est disponible dans Sid ou Testing, voir : http://packages.qa.debian.org/a/asterisk.html (s'abonner aux RSS si vous avez envie de voir comment les dev Debian ont du mal avec asterisk).

Résultats actuels

Mis en place dans deb http://apt.auf.org etch voip

Dépendances

il faut backporter libpri et zaptel : aucun soucis de ce coté là

Modification des sources d'asterisk

Voir le changelog du paquet... c'est un peu le bazar, mais on y arrive (c'est déjà moins tordu qu'avec 1.2, j'avoue).

asterisk-config-auf

Adapté à asterisk 1.4. Un vrai parcours du combattant vu la documentation de ce qui a changé entre 1.2 et 1.4 (pour ceux qui n'ont jamais joué avec asterisk : la doc est tout simplement inexacte, partielle, elliptique voire erronée).

appconference

J'ai packagé la version 2.0.1, compatible avec asterisk 1.4. Pas de regression constatée, mais les flags d'option ont changé !

Note : 2.0.1-1 est une version patchée "AUF" pour annoncer les départs et les arrivées dans une conférence. Le patch, presque pas crapoteux, a été soumis à l'upstream qui ne l'intègre pas parce qu'ils veulent un truc plus générique, configurable et tout et tout. C'est pas grave.

addons

Backport des sources asterisk-addons, telles quelles, ce qui donne :

  • asterisk-ooh323c : channel h323 pour le Grand Projet (TM) de liaison avec le matos de visio Polycom
  • asterisk-mysql : liaisons avec mysql
  • asterisk-mp3 : pour lire les mp3 directement

Notes

  • asterisk-doc : aucune utilité pour nous ; si besoin on prendra celui de Sid

Reste à faire

  • tester ekiga/sip... avec la video (en prévision de ekiga 3.0 qui saura faire du codec x264)
  • essayer asterisk-ooh323c pour voir si ça tourne avec les visio polycom. Un volontaire ?

Tests effectués

Sur voip-test.sn.auf.org (merci Jérôme), machine vz interne au RPV de Dakar, accessible en IP publiques via IAX2 (SNAT/DNAT).

Test 1 : installation sur une machine vierge

  • Ajout du dépot AUF avec auf-keyring : ok

  • aptitude install asterisk : tout joli, a priori juste ce qu'il faut :

{{{Les NOUVEAUX paquets suivants vont être installés : asterisk asterisk-app-conference asterisk-config-auf asterisk-config-auf-connexions asterisk-moh-auf asterisk-prompt-fr asterisk-sounds-main libasound2 libgsm1 libiksemel3 libogg0 libpri1.0 libradiusclient-ng2 libsensors3 libsnmp-base libsnmp9 libspeex1 libsqlite0 libsysfs2 libtonezone1 libvorbis0a libvorbisenc2 0 paquets mis à jour, 22 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de télécharger 17,7Mo d'archives. Après dépaquetage, 34,4Mo seront utilisés. }}}

  • Installation ok :

    (...)
    Paramétrage de asterisk-config-auf-connexions (1.0-64) ...
    Adding system user for Asterisk
    Ajout de l'utilisateur « asterisk » au groupe « dialout »...
    Terminé.
    Ajout de l'utilisateur « asterisk » au groupe « audio »...
    Terminé.
    Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)
    Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)
    
    Paramétrage de asterisk-moh-auf (1) ...
    Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)
    
    Paramétrage de asterisk-sounds-main (1.4.17~dfsg-1auf2) ...
    Paramétrage de asterisk-prompt-fr (0.0.20070104-1) ...
    Paramétrage de asterisk-app-conference (2.0) ...
    Paramétrage de asterisk-config-auf (1.4-7) ...
    
    Paramétrage de asterisk (1.4.17~dfsg-1auf2) ...
    Asterisk not yet configured. Edit /etc/default/asterisk first.
  • Questions debconf : ok, juste alerte comme quoi la clé n'est pas là, c'est normal.
  • Vérif des droits sur /etc/asterisk et les clés : ok (note : c'est ast-config-auf-connexion qui créée le compte lors d'une prémière install. Normal. Asterisk s'installe ensuite et ne met pas le bazar, tout a l'air ok !)
  • RUNASTERISK=yes (/etc/default/asterisk : ok)

  • /etc/init.d/asterisk start, stop, reload, etc... : ok

  • astgenkey : ok

  • dpkg-reconfigule asterisk-config-auf : ok

  • start : ok
  • tests de regression.
    • test des services de base de puis un ipphone : ok
    • test appel vers international, puis depuis international : ok
    • Regressions possibles/prévues :
      • conference : ok (version 2.0-1)
      • pickup : ok

PETITE ÉMOTION : mais mais mais, ça a l'air BON !!!!!

Test 2 : installation depuis une machine en asterisk 1.2 (asterisk-etch)

Youpi, c'est presque bon !!

Notes :

  • ne couvrira pas les installation bidouillées, normalement ça sera à gérer à coup de fichiers *.dpkg-new & co. Logique, classique.

  • pour éviter les réactions bizarres il faut stopper asterisk 1.2 avant le dist-upgrade => downtime

  • l'upgrade peut se faire de deux façons :
    • aptitude dist-upgrade (sans doute la méthode à conseiller, ne devrait pas poser de soucis sur un serveur non bidouillé)

    • aptitude install asterisk asterisk-config-auf asterisk-config-auf-connexions asterisk-prompt-fr (pour être certain de ne mettre à jour que la partie asterisk de la machine ; NB : un simple install asterisk ne suffit pas, au contraire il rend le système incohérent s'il n'est pas suivi d'un upgrade)

  • /etc/default/asterisk : il faut dire "oui" lorsque dpkg veut le remplacer, puis y indiquer "RUNASTERISK=yes"
  • déplacement automatique de .key vers /usr/share/asterisk/keys : ok via asterisk-config-auf/debian/config (dans preinst ça marche pooh... bah...)

Test 3 : vrais upgrades, merci aux cobayes !

Un VRAI upgrade d'un serveur en production !

  • Dakar, ce soir, me promet Jérôme. Allez Jérôme ! Lâche pas l'affaire, y'en a plus que pour quelques mois ;)

    bao*CLI> core show version
    Asterisk 1.4.17~dfsg-1auf3 built by thomas @ thomas-sandbox on a i686 running Linux on 2008-02-20 13:00:10 UTC
  • CAI de Danang fait le 20 février 2008 : aucun souci (malgré quelques avertissements pendant l'upgrade, cf upgrade-danang.log.txt )

  • BAP fait le 20 février 2008 : aucun souci (mêmes avertissements pendant l'upgrade, cf upgrade-bap.log.txt )

  • CNF de Hanoï fait le 23 février 2008 : aucun souci
  • Antenne de HCMV faite le 25 février 2008 : aucun souci
  • CNF de HCMV faite le 25 février 2008 : aucun souci

MERCI les gars ! JC, pour le "cp" qui déconne au début de l'upgrade, c'est corrigé, merci. Pour les divers avertissements du 2nd upgrade, ils sont principalement dus au fait qu'asterisk n'avait pas été arreté. On se retrouve pendant l'upgrade avec un asterisk 1.2 qui tourne avec une config de 1.4 (ou l'inverse, je ne sais plus) et ça délire car les fichiers ne sont évidemment pas compatibles d'une version à l'autre, c'est Asterisk (ni compatibilité descendante, ni ascendante ;) )

Merci encore, ça me rassure tout ça !


Notes :

Asterisk/NotesBackportEtch (dernière édition le 2008-02-27 10:49:24 par ThomasNoël)