Accueil Libroscope

oSIP : la petite pile qui monte

Licence Art Libre

A la une

Communauté du libre

Esprit du libre

Projets

plan du site
–  vendredi 12 novembre 2004, par Antoine Pitrou, Aymeric Moizard, Julien Tayon

Ce sont principalement les représentants des associations de promotion du libre qui parlent du libre, et de ses grands débats. Pourquoi ne pas demander aussi aux principaux intéressés de nous décrire comment ils voient le libre ?

L’entrevue qui suit est celle d’Aymeric Moizard [1] développeur principal du projet oSIP. oSIP est une bibliothèque sous licence LGPL implémentant le protocole SIP. Ce protocole permet d’établir toutes sortes de communications multimédia ; très utilisé pour faire de la téléphonie sur Internet (aussi appelée « voix sur IP »), il contient également des fonctionnalités de « présence » et de messagerie instantanée.

À l’heure où tout le monde fait ses gorges chaudes de la voix sur IP et de la messagerie instantanée (AIM, ICQ, Jabber, etc.), qu’est-ce qui t’a poussé initialement vers ce projet qui en est une composante importante ?

La bibliothèque oSIP est un projet comme un autre. J’ai juste eu la chance de trouver un projet porteur qui n’avait pas été encore fait. Ça faisait longtemps que j’attendais l’occasion de me lancer sur un sujet qui n’avait pas encore été fait et qui me plaise, et l’occasion s’est présentée.

Au début je ne me sentais pas capable de réussir. Je cherchais surtout un projet qui pourrait faire plaisir à quelqu’un, qui soit utile et de qualité. Il y a beaucoup de projets qui servent à rien et ça m’aurait fait ch**r de faire la même chose.

Comment es tu tombé sur ce projet alors ?

J’ai fait mon stage de fin d’études à l’UQAM, où je devais travailler sur le protocole SIP, un projet que je trouvais super. À la fin du projet, j’ai décidé, sachant qu’il n’y avait pas de projet libre, de faire ma propre « pile SIP ». J’ai commencé ce projet sans trop croire à sa réussite (même si je l’espérais). J’ai surtout voulu tester mes capacités et améliorer mes connaissances théoriques et pratiques. Je crois qu’on peut dire le succès d’oSIP est allé au-delà de mes espérances.

Qu’est ce qu’une « pile SIP » ?

L’infrastructure de l’Internet est régie par des protocoles qui permettent aux machines de fonctionner entre elles. Il manquait un protocole de signalisation générique pour les « nouveaux moyens de communication » : téléphone sur Internet, visio-conférence, messagerie instantanée, etc. Un protocole de signalisation ne s’occupe pas des contenus que l’on fait transiter (au contraire d’autres protocoles comme HTTP) ; il sert à trouver le moyen d’établier une communication (qu’elle soit téléphonique, multimédia...) avec une personne ou un groupe de personnes que l’on cherche à joindre.

Le protocole SIP (pour Session Initialization Protocol), normalisé par l’IETF [2], comble ce manque en gérant tout se qui se passe depuis le moment où vous recherchez la personne sur Internet (l’équivalent d’un service d’annuaire), jusqu’à ce que la connexion soit établie ; il se charge de trouver votre téléphone (on peut en avoir plusieurs à des endroits différents et avec des fonctionnalités différentes), il se charge de négocier les conditions de communications (quels médias choisir par exemple). Son utilisation ne se résume pas à la téléphonie, au contraire de H323, un autre protocole assez connu : il est conçu pour fonctionner avec tous types de communications « électroniques » pourvu qu’elles passent sur Internet.

Une « pile SIP » est donc une brique logicielle (une bibliothèque) qui permet de mettre en oeuvre les différentes fonctions offertes par le protocole SIP sans avoir à réécrire soi-même ces fonctions. Une telle brique s’adresse aux développeurs de logiciels voulant utiliser le protocole SIP, nullement aux utilisateurs finaux des logiciels.

Le protocole SIP a des concurrents sérieux en d’autres protocoles normalisés, tels que Jabber. SIP a pris du retard mais il est simple à comprendre et à mettre en oeuvre car il est conçu selon la philosophie « KISS » ou « Keep It Simple Stupid », comme les principaux protocoles de l’Internet : par exemple, les informations transitent en mode texte, elles sont donc immédiatement lisibles. De plus Jabber est spécialisé dans la messagerie instantanée, tandis que SIP est agnostique et se prête à toutes les applications.

Comment fonctionne le projet ? Es-tu épaulé par d’autres développeurs ?

Je suis seul sur le projet depuis 4 ans. Ce projet a beau être conséquent techniquement, le protocole est simple : il permet à une unique personne de maîtriser les principaux aspects. J’ai fait le choix de me concentrer sur le minimum (les « couches basses »), afin de produire une implémentation simple et robuste ; à charge aux utilisateurs de combler le fossé restant avec la partie applicative.

Les utilisateurs potentiels d’une pile SIP sont des industriels qui écrivent leurs propres applications. Je ne voulais pas me couper de ce public et ai donc choisi la licence LGPL, qui leur permet d’utiliser oSIP tout en ne diffusant pas le code source de leurs logiciels. C’est ainsi qu’oSIP est un logiciel libre utilisé dans des conditions réelles par des gens dont le modèle économique n’est pas celui du libre.

Qui constitue la communauté SIP ?

Il y a 400 abonnés à la mailing-list. La moitié des utilisateurs sont des étudiants. Le projet ne semble pas correspondre à leurs besoins car ils recherchent plus souvent une interface de programmation (API) simple, ce que n’offre pas ma bibliothèque. En effet, oSIP est une implémentation « bas niveau » du protocole SIP : la compréhension de la norme est requise pour intégrer oSIP dans son propre logiciel. Cela permet au produit d’être extrêmement flexible : on peut l’utiliser pour implémenter des serveurs, des téléphones IP, des clients divers et variés.

Une approche de « haut niveau » aurait permis aux développeurs d’applications d’ignorer les détails du protocole SIP et leur aurait donc facilité le travail, mais cela aurait été un facteur très limitant en terme de fonctionnalités. Je préfère laisser une souplesse d’utilisation aux utilisateurs même si c’est au prix d’une complexité certaine dans la manipulation de la bibliothèque. Cette façon de faire limite le nombre de « bons projets » basés sur oSIP mais ces derniers gagnent en flexibilité. oSIP n’est qu’une couche de base sur laquelle s’appuyer pour faire de nouvelles couches moins flexibles mais plus adaptées aux utilisateurs finaux. C’est cet aspect qui me fait penser qu’oSIP a de l’avenir.

Qu’est-ce que faire partie du projet GNU implique en terme de démarche ?

Pour être un projet GNU on évalue ton code pour voir si il est original. On te fait passer un entretien d’évaluation par email pour voir si tu comprends la « culture » du logiciel libre : par exemple si tu es prêt à dire GNU/Linux au lieu de Linux. Pour moi ce sont des questions anodines.

La communauté du libre

Quelle est ta relation avec la « communauté du libre » ?

J’ai l’impression d’être totalement en dehors de cette communauté. J’ai construit ce projet « à la maison » :
 mon « environnement du libre » est constitue de mon domicile et de ma mailing-list ;
 ma communauté se constitue d’étudiants et de développeurs qui travaillent majoritairement sur des projets propriétaires.

La communauté du libre que je connais, c’est donc ceux avec lesquels je travaille. Je suis heureux de donner mon logiciel, et je me sens impliqué tant que ça me rapporte « quelque chose ». Par contre je ne me sens pas impliqué dans une communauté du libre au sens large.

Pour moi, il y a d’un coté les acteurs, de l’autre ceux qui en parlent. Ceux qui en parlent le plus sont ceux qui en font le moins.

A ton goût, je fais partie de ceux qui en parlent et qui n’en font pas ?

Oui.

Pourquoi participes-tu aux Rencontres Mondiales du Logiciel Libre (RMLL) ?

C’est du relationnel pour apporter une vision globale de nos projets aux visiteurs.

Que t’apporte ton projet ?

Déjà, j’ai trouvé tous mes boulots grâce à mon projet, sauf le premier. J’en suis maintenant à refuser du travail.
De l’extérieur on peut trouver ça inutile mais grâce à ça :
 j’ai été bien payé ;
 j’ai des boulots intéressants et même certains que je regrette de devoir refuser.

Ce que ça m’apporte me dépasse et dépasse mes compétences. Les gens ont une confiance en moi que je n’aurais pas probablement pas eue si je n’avais fait ce projet. Au début je n’imaginais pas que ce soit possible. Je réalise aujourd’hui l’intérêt du logiciel libre dans le monde professionnel et c’est ce qui me motive : cette pratique n’est pas limitée à une caste de philosophes idéalistes. En retour, cette relation aux autres m’a donné confiance en moi.

J’ai trouvé ce projet avec de la chance, et j’ai réussi ce projet avec du courage ; la quantité de travail joue plus que l’intelligence. Tout le monde n’a pas la possibilité d’investir autant de temps libre pour atteindre la quantité de travail nécessaire. Je pense que c’est moitié travail et moitié talent. Certains disent qu’ils n’y arriveront pas alors que le plus difficile est de s’investir et non les compétences techniques. On acquiert les compétences en même temps que l’on travaille sur un projet. Dans le logiciel libre, tu as la capacité d’apprendre ; toutes les connaissances sont disponibles à ceux qui sont prêts à s’investir. J’étais très médiocre techniquement quand j’ai commencé.

Quelles compétences t’a apportée ton investissement dans un projet libre ?

La gestions des « threads » et des « sémaphores » en C, notamment dans le Linux Programming Guide ; les outils comme autoconf et automake. J’ai surtout acquis des compétences concernant la programmation en C et les outils : je ne savais finalement pas grand’chose en sortant de l’école. Maintenant je pourrais plus facilement m’impliquer dans n’importe quel projet. Et je me suis fait mes outils.

Penses-tu que le logiciel libre soit un gage de qualité en soi ?

Non. Pour moi il y a deux types d’applications dans le logiciel libre :
 les bidouilles ; des petites applications sympas qui peuvent tourner de manière autonome et qui ne sont pas axées sur la stabilité ;
 les valeurs sûres (protocoles réseau, systèmes d’exploitation, bases de données) qui sont souvent moins dotées en fonctionnalités mais qui privilégient la stabilité.

Par contre je pense qu’un projet est bon :
 s’il est conçu et produit de manière industrielle ;
 s’il accepte et intègre les contributions en retour.

Pour moi dans le logiciel libre il y a deux mondes, celui très majoritaires des projets inutiles ou médiocres, et celui qui m’intéresse des projets très utilisés car ils sont un cran au-dessus du reste (le serveur Apache ou IPTel m’impressionnent). Les produits open source en concurrence avec des logiciels propriétaires les surclassent souvent d’un ordre de grandeur. Les logiciels libres ont souvent moins de fonctionnalités car ils se concentrent sur la fiabilité. On peut se concentrer sur l’un ou l’autre avec succès, rarement sur les deux.

En terme d’effort requis on pourrait dire :
Fiabilité x Fonctionnalités = constante. Seulement la philosophie des éditeurs n’est pas de vendre de la fiabilité mais des fonctionnalités. Les codeurs dans le logiciel libre sont aussi intelligents que leurs collègues du propriétaire, c’est juste que dans le libre on a le choix de se concentrer sur la fiabilité, voire le choix de se planter.

Qui est Aymeric Moizard ?

La communauté des gens que je fréquente est disparate ce qui donne un mélange étonnant voire détonnant. Ce que je fais m’enthousiasme, c’est la raison qui fait que mon projet aboutit, et en plus j’en tire du plaisir.

J’ai bien d’autres plaisirs dans la vie et je partage mon temps entre les deux. Je ne me sens pas du tout « geek » ; j’aime voir mes amis, faire de la montgolfière et offrir des roses à ma femme. En dehors de mon projet, l’informatique ne m’intéresse pas.

Pourquoi avoir réimplémenté les threads, tu souffres du syndrome de la réécriture (« Not Invented Here ») ?

Je n’ai pas réimplémenté les threads, j’ai juste fait une interface portable qui utilise l’existant des plateformes sur lesquelles tourne oSIP (Windows, Solaris, Linux...) afin de pouvoir profiter d’une API qui soit toujours la même. Faut pas raconter d’âneries :-)

Conclusions ?

La vie est belle, je vais me marier, et je vais monter ma boîte. Si seulement on pouvait arrêter de me proposer du boulot...

Q : Qu’est ce qui fait courir Aymeric, la postérité, le pognon, la reconnaissance ?

La pognon, non, la postérité oui. J’ai l’impression d’ajouter ma brique à l’édifice même si c’est une quantité négligeable, c’est important pour moi.

D’un coté, je suis content de redonner à la communauté, de l’autre elle m’indiffère. Au final la contradiction se résoud quand on appelle communauté du libre l’ensemble des gens qui ne codent pas. Il existe cependant tellement de manière de contribuer que c’est dur de catégoriser.

Si je n’avais pas été confronté à des sujets qui m’intéressent en entrant dans le monde professionnel, et si je n’avais pas eu le salaire pour, alors je n’aurais pas eu de temps à consacrer au logiciel libre. Le libre n’est pas une pratique aussi égalitaire que certains le prétendent : avoir du temps est un privilège que seuls certaines classes (les plus riches) ou certains milieux peuvent s’offrir.

Quelle est ta définition de la liberté ?

Doit-on nous imposer une définition ou peut-on décider seul ? J’ai l’impression qu’au travers de la GPL, une certaine communauté du libre essaie d’imposer une définition de la liberté qui n’est pas la mienne.

La LGPL est un choix libre aussi. Si les gens ne comprennent pas que le libre peut apporter un plus alors c’est dommage. La LGPL apporte au logiciel libre une communauté d’industriels qui ne reversent pas souvent du code. Mais, comme il ne se sentent pas contraints, ils utilisent bien plus volontiers du logiciel libre. Grâce à leur participation, je découvre beaucoup de bugs et j’obtiens ainsi un code robuste et d’une qualité industrielle : la mise sous LGPL est pour oSIP un pacte gagnant-gagnant.

Et est-ce qu’avoir du code de qualité utilisable en conditions industrielles ne fait pas une bonne publicité au logiciel libre ?

Le discours selon lequel la licence LGPL soutient le propriétaire m’énerve. J’ai donné 4 ans de ma vie pour faire SIP, et j’ai eu plus de retours tant en quantité qu’en qualité de la part des éditeurs de solutions propriétaires. Ceux qui ont fait des retours ont contribué à la qualité de la pile SIP ; et je pense que la fin justifie les moyens.

La LGPL permet d’obtenir une communauté plus importante et une logique de coopération plus ouverte, cette idée de partage du savoir de la connaissance est le fondement même de l’open-source.

Le principal est d’avoir une pile SIP de qualité libre :

« Personne s’en plaindra sauf les cons. »

Une anecdote pour la route ?

J’ai commencé sous Linux car quand j’installais Windows il plantait au cours de l’installation ; mon ventilateur n’était pas assez puissant et la surchauffe du processeur faisait planter le PC. Donc pendant 1 an, je n’ai utilisé que du Linux, une Slackware à l’époque avec un noyau 1.0.9. J’y suis resté parce que je n’avais pas de problème de licence et que c’est une conception de qualité. Aujourd’hui je tourne sous Debian.

Références additionnelles

Protocoles :
 SIP ou H323
 la norme du protocole SIP

Projets connexes :
 exoSIP une bibliothèque haut niveau basée sur oSIP ;
 partySIP, un proxy SIP ;
 Linphone, un projet de logiciel de téléphonie IP basé sur oSIP

Le coup de coeur d’Aymeric

 IPtel

[1« Avec un Z comme zorro et un D comme Djack » (note de l’intéressé).

[2l’institut de standardisation des protocoles de l’Internet qui a élaboré TCP/IP, HTTP, SMTP, DNS, etc.

forum