Mes notes pour un backport de Asterisk 1.4.x (Debian/Sid) vers Etch -- ThomasNoël
Objectifs
Je veux compiler une version 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, 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
En cours de mise en place dans deb http://apt.auf.org etch voip-test
ATTENTION c'est vraiment des tests, pour l'instant ça marche même pas Ceux qui veulent tester (mais alors uniquement TESTER, sur des serveurs de TEST très éloignés de toute machine en production ) peuvent ajouter cette source en deb (voire deb-src pour ceux qui aiment compiler).
Dépendances
il faut backporter libpri et zaptel : aucun soucis de ce coté là
Modification des sources d'asterisk
Voir le changelog du paquet... le bazar...
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 "trunk" 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.
addons
Backport des sources asterisk-addons, ce qui donne :
- asterisk-ooh323c : channel h323 pour le Grand Projet (TM) de liaison avec le matos de visio
- 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
- 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.
Reste à faire
- refaire le tour des postinst et virer les "chown asterisk ..."
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)
- comprendre jingle/jabber/gtalk et voir ce qu'on peut faire avec (le doute m'habite)
Tests en cours
Sur voip-test.sn.auf.org (merci Jérôme) accessible en IAX2 (SNAT/DNAT).
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-63) ... Attention : le répertoire personnel que vous avez indiqué existe déjà. Ajout de l'utilisateur système « asterisk » (identifiant : 103)... Ajout du nouveau groupe « asterisk » (identifiant : 107)... Ajout du nouvel utilisateur « asterisk » (identifiant : 103) avec le groupe « asterisk »... Le répertoire personnel « /var/lib/asterisk » existe déjà. Pas de copie des fichiers depuis « /etc/skel ». adduser : Attention : ce répertoire personnel n'appartient pas à l'utilisateur que vous êtes en train de créer. Ajout de l'utilisateur « asterisk » au groupe « audio »... Terminé. Ajout de l'utilisateur « asterisk » au groupe « dialout »... 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-6) ... Paramétrage de asterisk (1.4.17~dfsg-1auf2) ... Asterisk not yet configured. Edit /etc/default/asterisk first.
Mmmhh.. c'est ast-config-auf-connexion qui créer le compte lors d'une prémière install : vérifier qu'il le fait bien... (postinst identique à celui d'asterisk-config)