Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
openbsd:astrisk_sur_openbsd_4.3_passage_par_les_ports [2008/05/07 14:08]
kmikze
openbsd:astrisk_sur_openbsd_4.3_passage_par_les_ports [2010/01/12 13:29] (current)
Line 1: Line 1:
 +Hey mon ami !!!!, toi aussi tu veux ton propre asterisk à la maison pour faire plein de loli choses ?
 +Toi aussi tu tourne actuellement sur un OpenBSD 4.3-release ?
 +haaaaa, et donc toi aussi tu as compte sip chez Free ?
 +
 +Bah alors toi aussi tu te tape cette erreur dans la console asterisk ?
 +
 +<​code>​chan_sip.c:​6705 determine_firstline_parts:​ Bad request protocol Packet</​code>​
 +
 +J'ai tout bon ?!
 +
 +Bon bah pas de problème, voici un petit tipaize qui va te permettre de corriger cela, en passant par un petit patch.
 +
 +Tout d'​abord,​ tu auras besoin des ports que tu peux prendre ici: [[ftp://​ftp.irisa.fr/​pub/​OpenBSD/​4.3/​ports.tar.gz]]
 +
 +<​code>#​ tar zxf ports.tar.gz -C /​usr</​code>​
 +
 +Vérifie ensuite que tu as bien le paquet xbase43.tgz,​ sinon télécharge et décompresse le
 +
 +<​code>#​ tar zxf xbase43.tgz -C /</​code>​
 +
 +Bon maintenant, file dans /​usr/​ports/​telephony/​asterisk
 +
 +c'est la que tout va se jouer, mais avant, quelques tips:
 +
 +Travaillant sur une soekris avec un disque dur, je vais spécifier de ne pas construire toutes les dépendances,​ mais uniquement les installer via les paquets, pour cela:
 +
 +<​code>#​ echo "​FETCH_PACKAGES=yes"​ >> /​etc/​mk.conf</​code>​
 +
 +De plus, j'​utilise un FS MFS ou tout le travail sera fait, on edit le fstab pour y ajouter la ligne suivante:
 +
 +<​code>​swap ​   /usr/obj mfs    rw,​-s=2000000 0 0</​code>​
 +
 +puis
 +
 +<​code>#​ echo WRKOBJDIR=/​usr/​obj/​ports >> /​etc/​mk.conf</​code>​
 +
 +voila, c'est prêt, ya plus qu'à !
 +
 +toujours depuis /​usr/​ports/​telephony/​asterisk:​
 +
 +<​code>#​ make extract</​code>​
 +
 +Cela va télécharger les sources d'​asterisk et installer les dépendances pour sa futur compilation.
 +
 +Ensuite on file dans le repertoire ou l'on va travailler les sources:
 +
 +<​code>​cd `make show=WRKSRC`</​code>​
 +
 +Tu devrais te retrouver quelque part par la: /​usr/​obj/​ports/​asterisk-1.4.18/​asterisk-1.4.18
 +
 +Tu colle ce qui suit dans un fichier (source de l'​information:​ [[http://​lists.digium.com/​pipermail/​asterisk-dev/​2006-May/​021033.html]])
 +
 +
 +<​code>​diff -r 574e1faffbed -r fc55abbddee7 channels/​chan_sip.c
 +--- a/​channels/​chan_sip.c Wed May 31 15:41:11 2006 +0200
 ++++ b/​channels/​chan_sip.c Wed May 31 16:47:21 2006 +0200
 +@@ -5145,6 +5145,12 @@ static int determine_firstline_parts(str
 +  if (*e)
 + ​ *e++ = '​\0';​
 +  e = ast_skip_blanks(e);​
 ++ if (!strcasecmp(req->​rlPart1,​ "​Cirpack"​) &&
 ++     !strcasecmp(req->​rlPart2,​ "​KeepAlive"​) &&
 ++     !strcasecmp(e,​ "​Packet"​)) {
 ++ /* Silently drop bogus Cirpack keepalive packets */
 ++ return -1;
 ++ }
 +  if (strcasecmp(e,​ "​SIP/​2.0"​) ) {
 + ​ ast_log(LOG_WARNING,​ "Bad request protocol %s\n", e);
 + ​ return -1;</​code>​
 +
 +
 +Donc comme tu sais lire, tu aura deviner qu'il faut patcher le fichier channels/​chan_sip.c
 +
 +On va tester ton patch, vérifier qu'il ne retourne aucune erreur:
 +<​code>​patch -p1 -C < ton.patch</​code>​
 +
 +S'il n'y a rien à signaler, alors on patch pour de vrai !
 +<​code>​patch -p1 < ton.patch</​code>​
 +
 +logiquement apres tu dois avoir un fichier channels/​chan_sip.c.orig\\
 +tu retourne ensuite dans les ports: /​usr/​ports/​telephony/​asterisk et tu lance ceci:
 +
 +<​code>​make update-patches</​code>​
 +
 +tu pourras vérifier qu'un nouveau fichier est bien généré:
 +
 +<​code>​patches/​patch-channels_chan_sip_c</​code>​
 +
 +Si c'est bien le cas, bah bravo, on peut donc compiler asterisk avec son patch !
 +Let's go
 +
 +<​code>​make clean && make</​code>​
 +
 +voila, apres tu aura un asterisk tout neuf patché pour ne plus afficher cette erreur, hé oui, on ne corrige rien en fait, on annule juste ce message :)
 +
 +Avant d'​installer ce nouveau paquet, bien supprimer l'​ancien !
 +
 +<​code>​pkg_delete asterisk</​code>​
 +
 +et ensuite on install le notre:
 +
 +<​code>​make install</​code>​
 +
 +
 +Merci Gaston pour le coup de main o// \\
 +et DbD- pour le petit tips sur l'​option FETCH_PACKAGES=yes dans /​etc/​mk.conf
  
openbsd/astrisk_sur_openbsd_4.3_passage_par_les_ports.txt · Last modified: 2010/01/12 13:29 (external edit)