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 :