Skype (skype4pidgin) + minbif on Debian.

I will explain to you my ugly method to use skype with minbif.

Indeed, skype is a proprietary protocol, and we can only use the API of the Qt client for that hack.
We must use it with a virtual X server, Xvfb.

On the remote server :

1
2
3
4
5
6
7
8
9
10
# aptitude install xvfb x11vnc
# dpkg -i skype-debian_2.1.0.81-1_i386.deb
# apt-get -f install
# aptitude install minbif
# usermod -s /bin/bash minbif
# sudo su minbif
$ export DISPLAY=:25
$ Xvfb :25 -screen 0 1024x768x16 &
$ skype &
$ x11vnc -bg

On your local computer :

1
$ ssh server -L 5900:localhost:5900

Next on your local computer :

1
$ xvncviewer localhost

You must accept the license and enter your login/password, then activate the autologin.
You can now use your graphical skype client over VNC.

On the remote server :

1
2
3
$ killall x11vnc
$ killall skype
$ killall Xvfb

You must edit the config.xml, after minbif can access to the skype API.

1
2
3
4
5
6
7
8
$ vim /var/lib/minbif/.Skype/VOTRECOMPTE/config.xml
  <UI>
    <API>
      <Authorizations>(null)</Authorizations>
      <BlockedPrograms></BlockedPrograms>
    </API>
  </UI>
</config>
1
# usermod -s /bin/false minbif

Now you must install skype4pidgin with Xvfb.

1
# aptitude install pidgin-dev

I use revision 579

1
2
3
svn checkout -r 579 http://skype4pidgin.googlecode.com/svn/trunk/ skype4pidgin
gcc -I/usr/include/libpurple `pkg-config --libs purple x11` -DPURPLE_PLUGINS -DENABLE_NLS -DUSE_XVFB_SERVER -Wall -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib64/glib-2.0/include -I/usr/include -I. -g -pipe libskype.c -o libskype.so -shared -fPIC -DPIC
cp libskype.so /usr/lib/purple-2/
Log on minbif
If everything is ok, you can speak to « echo123″
1
2
3
4
5
6
$ ps aux | grep minbif
minbif    6764  0.0  2.0  10248  5440 ?        S    14:15   0:01 Xvfb :25 -ac -terminate -tst -xinerama -render -shmem -screen 0 320x240x16
minbif    6766  0.4 13.8  80096 36328 ?        Sl   14:15   1:00 skype --pipelogin -display :25
minbif   10342  0.3  0.6  12368  1580 ?        Ss   15:38   0:29 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf
minbif   14203  9.5  4.8  86264 12616 ?        Sl   17:31   1:05 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf
minbif   14232  0.4  1.8  85680  4964 ?        S    17:31   0:03 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf

Skype (skype4pidgin) + minbif, ou comment utiliser l’IM skype dans votre irssi.

Vous savez surement que j’utilise minbif pour la messagerie instantanée. Mais il y a un protocole que j’utilise régulièrement pour la messagerie instantanée entre autre, et que je n’ai jamais pensé à intégré dans minbif, il s’agit de Skype.

Ce que je vous propose ici et une solution bien moche, en effet, skype est un protocole propriétaire, nous allons devoir utiliser le binaire skype, le lancer et passer par son API.

Cependant ce binaire ne propose pas de solution en console, il va falloir lancer skype en mode graphique, et le minbif étant sur un serveur, celà pose problème. La solution: utiliser Xvfb, un « fake » serveur X.

Voici la procédure que j’ai utilisé

Sur la machine distance :

1
2
3
4
5
6
7
8
9
10
# aptitude install xvfb x11vnc
# dpkg -i skype-debian_2.1.0.81-1_i386.deb
# apt-get -f install
# aptitude install minbif
# usermod -s /bin/bash minbif
# sudo su minbif
$ export DISPLAY=:25
$ Xvfb :25 -screen 0 1024x768x16 &
$ skype &
$ x11vnc -bg

Puis sur votre machine locale :

1
$ ssh server -L 5900:localhost:5900

Et également en local :

1
$ xvncviewer localhost

Vous pouvez alors accepter les conditions d’utilisation, entrer votre login/password et activer l’autologin.
Votre client skype devrait-être fonctionnel en graphique.

Sur la machine distante :

1
2
3
$ killall x11vnc
$ killall skype
$ killall Xvfb

On modifie le fichier config.xml pour donner l’accès de minbif à l’API skype, tout à la fin:

1
2
3
4
5
6
7
8
$ vim /var/lib/minbif/.Skype/VOTRECOMPTE/config.xml
  <UI>
    <API>
      <Authorizations>(null)</Authorizations>
      <BlockedPrograms></BlockedPrograms>
    </API>
  </UI>
</config>
1
# usermod -s /bin/false minbif

Maintenant il faut compiler le plugin skype4pidgin avec le mode Xvfb :

1
# aptitude install pidgin-dev

j’utilise la révision 579

1
2
3
svn checkout http://skype4pidgin.googlecode.com/svn/trunk/ skype4pidgin
gcc -I/usr/include/libpurple `pkg-config --libs purple x11` -DPURPLE_PLUGINS -DENABLE_NLS -DUSE_XVFB_SERVER -Wall -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib64/glib-2.0/include -I/usr/include -I. -g -pipe libskype.c -o libskype.so -shared -fPIC -DPIC
cp libskype.so /usr/lib/purple-2/
Connectez vous à minbif, ajoutez un compte skype
Normalement si tout se passe bien, vous devriez voir se connecter echo123 et pouvoir faire des tests en lui parlant.
1
2
3
4
5
6
$ ps aux | grep minbif
minbif    6764  0.0  2.0  10248  5440 ?        S    14:15   0:01 Xvfb :25 -ac -terminate -tst -xinerama -render -shmem -screen 0 320x240x16
minbif    6766  0.4 13.8  80096 36328 ?        Sl   14:15   1:00 skype --pipelogin -display :25
minbif   10342  0.3  0.6  12368  1580 ?        Ss   15:38   0:29 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf
minbif   14203  9.5  4.8  86264 12616 ?        Sl   17:31   1:05 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf
minbif   14232  0.4  1.8  85680  4964 ?        S    17:31   0:03 /usr/bin/minbif --pidfile /var/run/minbif/minbif.pid /etc/minbif/minbif.conf

Bash et fonctionnalités réseaux

Ce week-end j’ai mis à jour netsoul-purple. Création de packages debian, corrections…

Et ce matin en me levant je me suis demandé : Mais combien de personnes utilisent netsoul-purple ? Est-il utilisé ?
J’ai donc décidé de faire un petit script en bash pour compter les utilisateurs.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/bash

exec 9<>/dev/tcp/ns-server.epita.fr/4242
echo -e "list_users" >&9
numbers=0
while read line <&9
do
  ns=`echo $line | grep netsoul%2dpurple >&1`
  quit=`echo $line | grep "rep 002 -- cmd end" >&1`
  if [[ ! -z $ns ]]
  then
    echo $ns
    numbers=$(($numbers+1))
  fi
  if [[ ! -z $quit ]]
  then
    break
  fi;
done
exec 9<&-
exec 9>&-

echo "Result: $numbers"

Voilà un parfait exemple de comment initialiser une connexion TCP et la lire avec bash.
Par la suite il serait intéressant de faire des graphs RRD avec le résultat.

2010.

Chers Lecteurs,  (hey guys, still here ?)

La fréquence de parution de mes billets est de plus en plus faible, pour dire quasi-inexistante, je vais essayer d’y remédier dans les semaines qu’y viennent, en effet, je dois avoir 6 articles en brouillon depuis plus d’un an, il va bien falloir que je les publie un jour ou l’autre.

C’est donc mon premier billet de l’année (d’ailleurs bonne année, et bonne fête mamie). J’en ai profité pour faire un petit changement sur le site, j’ai fusionné le blog avec la « page », et modifié un peu la manière dont les choses se présentent ici.

Pour faire un petit point sur mon parcours, car je sais que certaines personnes s’y intéressent, maintenant je suis en fin de 3ème année à Epitech Lille, j’ai rendu les armes pour le poste d’Assistant Epitech depuis le mois de Janvier, et je travaille toujours en alternance chez Capensis. La fin de l’année approche (fin avril), je quitte la région pour de nouvelles aventures sur Paris, avec un stage d’un tout autre genre, du développement C.

Dans mes prochains billets, on parlera de différents trucs plus ou moins poilus :

  • D-Link DNS-323
  • Wii
  • Android
  • Vim
  • C
  • Ma vie, mais ca, vous vous en doutiez déjà.

Bonne fin de week-end à tous.

Minbif, la messagerie instantanée facile.

Utilisant de nombreux protocoles différents, Jabber, AIM, MSN, pour ne citer qu’eux, j’ai toujours souhaité utiliser un  client multi-protocole.

J’ai essayé de nombreuses solutions,

Tout d’abord il y eut GAIM, client multiprotocole en C/GTK+, on se plaindra surtout à l’époque de son manque de fonctionnalité pour chaque protocole.

Avec l’essort du protocol jabber, vit le jour des passerelles vers les autres protocoles, certaines efficaces, d’autre non, je retiendrais surtout avoir été victime de beaucoup de problèmes techniques au niveau du serveur pour quelque chose d’utilisable.

Un fork de gaim vit le jour, bitlbee, proposant quelque chose d’intéressant, une passerelle IRC vers les protocoles utilisé par GAIM. Cependant le projet ne mergera pas les sources de GAIM régulièrement, il restera assez pauvre au niveau des fonctionnalités, bien que pratique !

GAIM se renomma ensuite en pidgin, Pidgin est une interface graphique utilisant la libpurple pour se connecter aux différents IM.

Puis vint Minbif, reprenant la même idée que bitlbee, celui-ci utilise cependant la libpurple, permettant d’utiliser tous les plugins que nous souhaitons (notamment msn-pecan pour un meilleur support de MSN, et netsoul-purple pour notre protocole favoris à l’école). Minbif permet donc d’utiliser toute la libpurple au travers d’une passerelle IRC.

Bien que encore en développement, Minbif est désormais mon client de Messagerie Instantanée fêtiche !
N’hésitez pas à l’essayer et à faire des rapports de bugs !

Netsoul-Purple

Il est un protocole que tout Epitechiens connait, il s’agit de l’immonde^W^Wdu merveilleux protocole de messagerie instantanée de l’école, j’ai nommé Netsoul. Bien plus qu’un simple protocole de messagerie, celui-ci permet de vous identifier sur le PIE, de surveiller vos temps de log pour que vous travailliez bien… Bref le protocol Netsoul est indispensable à toute personne qui veut travailler à l’école.

Il existe un plugin netsoul pour pidgin nommé gaim-netsoul qui n’est plus maintenu.

Je vous propose donc ma version, j’ai nommé netsoul-purple, corrigeant segfaults et désagréments notoires !

Je vous invite bien entendu à créer des tickets pour tout bug (car il en reste plein) et toute demande de fonctionalité !

Des nouvelles du front.

Des mois passés depuis mon dernier billet, le blog a disparu, réaparu,redisparu, j’ai du perdre tous mes lecteurs, au vu de la régularité des posts !

Cependant je ne suis pas mort, après avoir passé 5mois de stage à Madagascar dans le développement d’une plateforme de VoIP, j’ai repris le rythme d’Epitech d’un 2ème année.

Au programme développement réseau C, SQL, PHP, Maths, Projet Libre, Assembleur…

L’année est cependant terminée, je passe en 3ème année et je cherche maintenant un travail à temps partiel sur la métropole Lilloise pour la durée de l’année scolaire 2009-2010

La virtualisation avec KVM sous debian

On a toujours besoin de tester ses configurations sur une machine qui n’est pas en prod, il y a encore peu, je testais tout sur du matériel de récupération que j’accumulais chez moi. Mais il arrive un moment dans la vie où il faut se débarasser de tout ce vieux matériel (une petite amie, un déménagement, ou je ne sais quoi :) ). Bref, des machines ça prend de la place, et j’essaie désormais d’en avoir le moins possible.

Pour notre plus grand bonheur, Intel et AMD ont implémenté dans les derniers processeurs des technologies de virtualisation ! On voit alors fleurir sur le net, de multiples applications opensource (ou pas) utilisant ces technologies, comme par exemple, KVM, Xen.

Read more

La piscine…

Après 3 semaines de piscine, je vais vous faire un petit bilan de celle-ci.

Pour ceux qui ne connaissent pas Epitech, la piscine est une période de 3 semaines de code intensif où l’on nous fait bouffer du C dans tous les sens.

Read more

Installation d’OpenWRT sur un ASUS WL-500GP

J’ai acquis récemment un routeur wifi ASUS WL-500GP, tout geek que je suis, je me suis empressé de le passer sous OpenWRT. Voici donc la procédure que j’ai suivi ! Inspiré notamment de la documentation officielle d’OpenWRT.

Read more

Page suivante »