Modifications entre les versions 1 et 30 (s'étendant sur 29 versions)
Version 1 à la date du 2007-09-16 00:39:18
Taille: 2356
Éditeur: ThomasNoël
Commentaire: a valider
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 :
 * pas de h323 dépendant de openh323 (on backportera asterisk-ooh323)
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)
Ligne 8: Ligne 8:
 * pas de serveur IMAP intégré pour la boite vocale (pfffff...)
* pas de consoles kde, qt ou gtk (re-pffff...)
 * en revanche, on va ajouter gnutls apparement nécessaire pour iksemel (jabber)
 * 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)
Ligne 12: Ligne 12:
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. 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`
Ligne 16: Ligne 22:
il faut backporter libpri et zaptel : aucun soucis il faut backporter libpri et zaptel : aucun soucis de ce coté là
Ligne 20: Ligne 26:
Les sources Asterisk (ajouter sid dans un deb-src de sources.list) :
 {{{
$ apt-get source asterisk
$ cd asterisk-1.4.11~dfsg
$ sh ./debian/backports/etch # adaptation de qlq dépendances
}}}
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).
Ligne 27: Ligne 28:
Au niveau de `debian/control` :
 1. Build-Depends: '''retrait''' de libpq-dev, unixodbc-dev, graphviz, doxygen, gsfonts, libopenh323-dev, libradiusclient-ng-dev, freetds-dev,libc-client-dev
 1. Build-Depends: '''ajout''' libgnutls-dev
 1. suppression section "Package: asterisk-h323" : on ne va pas créer ce paquet
= asterisk-config-auf =
Ligne 32: Ligne 30:
Au niveau de `debian/rules` :
 1. ligne 74, on retire with-pwlib=... et with-h323=... et on remplace par :
 {{{ --without-pwlib \
                --without-h323 \
                --without-imap \
                --without-kde \
                --without-odbc \
                --without-postgres \
                --without-qt \
                --without-radius \
                --without-tds
}}}
 1. plus bas, on commente le "sed" qui supprime chan_h323 de la liste des modules désactivés :
 {{{ # sed -i -e '/MENUSELECT_CHANNELS=/s/chan_h323//' menuselect.makeopts}}}
 1. en dessous, on commente la seconde compilation
 {{{ # Build a second time to pick up h323 :-(
        # $(FETCH_ENV) $(MAKE) $(MAKEFLAGS)
}}}
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).
Ligne 51: Ligne 32:
Et voila... `dpkg-buildpackage -rfakeroot -tc -uc -us`. = 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
Ligne 55: Ligne 48:
 * `asterisk-doc` est sans doute foireux (vide ?) car on n'a pas installé ni doxygen ni gsfonts ni graphviz. Aucune importance.  * `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 ?
Ligne 58: Ligne 56:
= Tests effectués =
Ligne 59: Ligne 58:
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 [[attachment:upgrade-danang.log.txt]] )
 * BAP fait le 20 février 2008 : aucun souci (mêmes avertissements pendant l'upgrade, cf [[attachment: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 :

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)