Journal Le protocole SIP et la bibliothèque jart/gosip

Posté par  . Licence CC By‑SA.
Étiquettes :
5
23
mai
2026

Protocoles ouverts et fédérés

Je lis et j'écris mon mail avec Emacs sur ma machine de bureau, avec FairEmail sur mon téléphone, et avec RoundCube quand je suis chez des amis. Si un jour je change de fournisseur, j'écrirai encore mon mail avec Emacs, avec FairEmail, et peut-être avec RoundCube.

C'est parce que les protocoles SMTP et IMAP sont ouverts, et les différents clients sont interopérables.

Quand j'envoie un mail, je n'ai pas besoin de me préoccupper du fournisseur de service de mon correspondant : je mets son adresse mail dans le champ To de mon mail, et mon fournisseur s'arrange avec celui de mon correspondant pour que le mail arrive. Non seulement SMTP est interopérable, mais en plus il est fédéré.

Chat et vidéoconférence : protocoles fermés

Rien de tel avec le chat et la vidéoconférence. Si mon correspondant m'invite à une réunion Zoom, il faut que j'utilise le client Zoom ; si c'est sur Jitsi qu'il m'invite, il faut que j'utilise le client Jitsi. Et si mes collègues utilisent Zulip pour parler de l'impact écologique de notre travail, il faut que j'utilise le client Zulip, ou alors je ne saurai pas que je ne devrais pas prendre l'avion. Ces protocoles sont fermés.

Remarquez que cela n'a pas beaucoup de rapport avec le logiciel libre ou propriétaire : Zulip est libre, mais utilise un protocole fermé, tandis que Mail.app est propriétaire, mais utilise un protocole ouvert.

Téléphone mobile : vente liée

Pour la téléphonie mobile, c'est encore pire : mon fournisseur de connexion Internet me vend des minutes de téléphone. Si je prends un abonnement 4G chez Free, je ne peux pas acheter mes minutes de voix chez Orange. C'est pour cela que je paie tous les mois pour une SIM polonaise dont je ne me sers quasiment jamais : j'ai besoin d'un numéro polonais, donc on me force à prendre une connexion Internet en Pologne.

En 2G et 3G, il y avait de bonnes raisons techniques pour cela. En 4G et 5G, c'est un choix purement commercial. Le réseau 4G est un réseau purement IP : il n'y a pas de voix sur le réseau, il y a juste des paquets de données. Après s'être connecté à l'Internet, le téléphone mobile consulte sa SIM, et se connecte au IP Multimedia System (IMS) du fournisseur. Ce qui est juste un terme marketing pour un serveur SIP.

SIP

À l'origine, la voix sur IP devait être ouverte et fédérée, comme SMTP. Je devais pouvoir acheter un téléphone SIP, le brancher à l'Ethernet, le configurer avec l'URL de mon fournisseur SIP, et avoir le téléphone chez moi. Si je changeais de fournisseur Internet, je gardais mon fournisseur de voix, tout comme mon fournisseur de mail.

Je devais aussi pouvoir utiliser le même compte SIP sur plusieurs périphériques. J'aurais eu mon téléphone fixe SIP chez moi, mon softphone sur ma machine de bureau, un client SIP sur mon mobile, et lorsque quelqu'un m'appelle, c'est mes trois téléphones qui sonnent en même temps, comme sur une ligne fixe. Et si je perds mon téléphone mobile, pas d'inquiétude, je suis encore joignable sur mon fixe et sur ma machine de bureau.

Pour diverses raisons, ça n'a pas pris. Mais l'infrastructure existe. Quelques fournisseurs SIP :

  • Linphone, gratuit, chiffré, mais n'interopère pas avec le réseau téléphonique (on ne peut appeler une adresse Linphone que depuis un autre téléphone SIP) ;
  • OVH, payant mais pas cher, permet de recevoir les appels depuis le réseau téléphonique, mais n'implémente toujours pas le chiffrage.

Les anciennes versions d'Android implémentaient SIP nativement, mais la fonctionnalité a été supprimée. Il faut donc installer un softphone, comme BareSip ou Linphone. Pour Linux, il y a Twinkle. Il y a aussi des softphones SIP pour Windows et Mac OS, mais je ne suis pas là pour faire de la pub gratuite pour les logiciels propriétaires.

Galene-sip et jart/gosip

Certains se souviendront que je suis l'auteur principal du serveur de vidéoconférence Galène. L'année dernière, j'ai implémenté galene-sip, une passerelle entre SIP et Galène. Galene-sip se connecte simultanément à un fournisseur SIP et à un serveur Galène, et les utilisateur peuvent participer à une vidéoconférence en appelant un numéro de téléphone, même s'ils n'ont pas d'accès Internet stable.

Avant d'écrire galene-sip, j'avais cherché une bonne bibliothèque SIP pour Go. Les bibliothèques que j'ai trouvées ne me semblaient pas très bien conçues, la seule qui m'a plu, c'est jart/gosip. Comme elle n'est plus maintenue, je commence doucement à la prendre en main.

Si vous cherchez un projet libre sur lequel travailler, ou si vous avez besoin d'une bibliothèque de téléphonie libre, jetez un coup d'œil à jart/gosip.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.