Activer la réduction de bruit en temps réel et l'annulation acoustique d'écho pour un microphone sous Linux avec PulseAudio (et faire croire aux gens que vous roulez en Porsche)

On se souviendra que j’avais témoigné de mon admiration pour le acoustic echo cancelling dans Empathy/Telepathy via PulseAudio il y a plusieurs années.

Continue reading “Activer la réduction de bruit en temps réel et l'annulation acoustique d'écho pour un microphone sous Linux avec PulseAudio (et faire croire aux gens que vous roulez en Porsche)”

Se libérer de Bell et Vidéotron: passez Go et réclamez 1000$ par année

Ceci est un guide, basé sur mon expérience, pour vous libérer de l’hégémonie de fournisseurs tels que Bell et Vidéotron tout en augmentant votre connaissance de la technologie. Notons que ce guide est hautement contextuel à la quasi absence de compétition que l’on retrouve au Québec. Les Français, eux, ont Free (entre autres). Petite parenthèse de mise à jour en 2019: j’ai maintenant créé une page “aide-mémoire” résumant tout le matériel dont vous avez besoin ici. Toutefois, continuez à lire ci-dessous si vous voulez avoir toute l’histoire et la logique expliquant ma méthode, vous ne le regretterez pas.
Alors, d’entrée de jeu, je me fiche de tout ce que les vendeurs de Bell et Vidéotron pourront vous dégotter comme offres promotionelles pour vous séduire:

  • Les tarifs avantageux pour les 12 prochains mois, ça ne veut rien dire. Je regarde sur le long terme (5-10 ans) et je calcule toujours les offres à “tarif régulier”.
  • De la même façon, j’ignore toute offre “package deal”: le classique “migrez tous vos services chez nous! téléphonie + Internet + télévision! Vous allez économiser de l’argent!” est vrai seulement si vous n’avez pas la patience ou l’audace de mettre en place ce que je propose dans ce billet (par exemple, j’en connais un qui est bien heureux de payer 50$ par mois pour le câble juste pour avoir TV5…), ou si vous trouvez que 100$ par mois c’est une “aubaine” (si tel est le cas, j’ai un beau pont presque neuf à vous vendre, vous allez l’adorer).

Continue reading “Se libérer de Bell et Vidéotron: passez Go et réclamez 1000$ par année”

PulseAudio 2.0 + Empathy = awesome

I’ve been meaning to blog about this for months. You may remember me being a fan of SFLphone. Well, turns out that for the past year, I’ve been using only Empathy to do my VoIP calls. All you need to do is install telepathy-rakia to have SIP support (and then you can use Ctrl+M to start dialing a number). Even though Empathy is not perfect, I like it: it’s a standard component of the GNOME desktop, it uses GStreamer and PulseAudio, and it keeps getting better every six months.
Recently, a significant piece of the puzzle has been fully solved in PulseAudio 2.0: real, rock-solid acoustic echo cancelling. Echo cancelling is not to be confused with echo concealment/suppression, which is basically just muting the other person while you’re talking (most phones and software applications—including Skype—do that, and it sucks).
As Christian nicely summarized, audio/video calls over the past few years have been a complex story. Unless you are close to GStreamer and Telepathy developers, it’s hard to see the big picture. Christian’s blog post is thus helpful, but I think it does not truly express how mindboggingly awesome this feature is, from a “What? Computers can do that? With Free Software?!” perspective.

A test call through XMPP/Jabber with Google Talk accounts. Notice that the echo-cancelled virtual device shows up in the GNOME volume control panel during the call. Yes, I cheated and used gnome-tweak-tool to change the control center’s colors to the dark variant.

Let me put it this way: I unplugged the headphones, called my laptop, put it into the garage, closed the door and went back to the previous room with the phone. I spoke, and I thought it was broken because the echo cancellation was working too well. I could not hear myself nor any audio artifacts. When I fetched someone else to go speak in front of the computer, it turned out that there was simply no echo whatsoever. Jaw on the floor. And that was with the laptop’s crappy 1-watt speakers; I then called across the globe to Bangalore, with my trusty USB microphone and 5.1 sound system, and it felt just like the other person was in the same room as me.
It works even if there’s ambient noise. The only way to confuse the echo canceller is to be in the same room with both the phone and the laptop. Not likely, unless you like talking to yourself.
Finally, no more fumbling around to pick up a call when your gear is not plugged in. Conference calls the way they were meant to be. Hands-free discussions while cooking or in a car. Holy smokes, we’re only missing holograms and flying cars… Folks, you know what to do.

Sipdroid et le Samsung Galaxy i7500

Cet été, j’ai un emploi qui exige que je puisse prendre des appels téléphoniques en tout temps en provenance de quinze personnes que je supervise (il m’est arrivé de recevoir trois appels simultanément!). Comme je veux pouvoir travailler dans le jardin, je ne peux donc pas rester attaché en laisse à mon téléphone VoIP filaire.
Histoire courte: j’ai décidé d’acheter un téléphone Android usagé à 100$ (pre-unlocked avec 2.2 “Froyo”) afin de l’utiliser strictement comme téléphone VoIP wifi et comme mobile internet device (pratique d’avoir ses contacts, calendriers et un GPS dans sa poche).

Best. Purchase. Ever.
Excepté que ça m’a pris quatre jours pour tout faire fonctionner. Les “gotchas” à savoir pour faire marcher le tout sur un Galaxy i7500:

  • Tout d’abord, il faut utiliser la touche menu en hardware pour accéder aux options de sipdroid. Pas forcément évident quand ladite touche n’est pas identifiée sur le téléphone (et donc qu’on ne sait pas qu’elle existe).
  • Ensuite, pour éviter que le wifi se coupe lorsque l’écran s’éteint (même si on a bien pris soin de s’assurer que le wifi sleep policy global est à “Never”… ben visiblement avec le Samsung Galaxy déconne, il ignore cette préférence et désactive toujours le wifi lorsqu’en veille sur batterie): installer “wi-fi keep alive” et activer le workaround #2 (y accéder via la touche Menu). Plus besoin d’activer les advanced options de sipdroid ou de désactiver le screen blanking global.
  • Lorsqu’on branche le téléphone comme étant un disque dur USB, on met les ringtones dans le sous-dossier media/audio/ringtones, pas un dossier «ringtones» directement dans la racine! Donc, full path tel que vu sous Fedora: /media/NO_NAME/media/audio/ringtones
  • Pour régler (peut-être?) le problème de touches qui s’activent quand on a le téléphone sur l’oreille: Call settings > turn off ‘force touch ui’. À vérifier.

Continue reading “Sipdroid et le Samsung Galaxy i7500”

Voip.ms

J’ai été client de Callcentric pendant deux ans et, suite à quelques tests et vérifications, j’ai décidé le mois dernier de migrer ma téléphonie IP chez Voip.ms. Les raisons et avantages de cette transition:

  • Ils offrent au client le choix entre les lignes téléphoniques “value” et “premium”. Comme le premium routing est tout de même à un prix dérisoire, je n’hésite pas à l’utiliser pour tous mes appels. C’est pas 0.7¢/min de différence qui va me ruiner.
  • Selon tous mes tests, la qualité sonore est largement supérieure à ce qu’on peut avoir chez Callcentric: pas d’écho, pas de délai/latence perceptible, etc. Mes parent ne rhâlent plus.
  • Voip.ms permet de choisir à quel serveur on se connecte (ex: toronto2.voip.ms, montreal.voip.ms, etc.) pour réduire la latence.
  • Ce sont des montréalais. Mon père ne peut plus chialer que je ne fais pas affaire localement.
  • Les appels sans réponse ne sont pas facturés. J’avais eu une petite surprise quand mon père a tenté de téléphoner quatre fois à Cuba avec Callcentric.
  • Facturation aux six secondes (au lieu d’une facturation arrondie à la minute).
  • Flux de syndication rss pour les nouveautés et pour les incidents… le fait que Voip.ms publie ouvertement ses incidents est un geste de transparence que j’apprécie beaucoup.

Continue reading “Voip.ms”

SFLphone translators and package maintainers needed

I’d like to take a minute to tell you about one of the apps I’ve been passionately using. It is probably one of the lesser-known, fly-under-the-radar stealth ninja killer apps that just deserves some serious kudos and some publicity on Planet GNOME.
SFLphone is an open source SIP and IAX2 (Asterisk) VoIP softphone.
Except that this one works. I shit you not.
Developped by the friendly folks of Savoir-faire Linux, it has replaced Twinkle as my softphone for the past two years or so, for the following reasons:

  • It works with Callcentric, and it works (even better?) with Voip.ms, which I plan on switching to
  • It works perfectly with PulseAudio. Yes, I’m dead serious.
  • It has a clean client/daemon separation. Its main user interface is the GTK+ one, but there is also a Qt interface (which I have never tested to be honest). KDE users can be happy too.
  • It can integrate with your multiple Evolution address books to parse your contact’s numbers. That means I can even get it to pull phone numbers from my GMail account (since Evolution has an addressbook provider for it). How cool is that?
  • They have a proper project infrastructure: they have stable/unstable/daily builds through an Ubuntu PPA, they have .deb and .rpm packages, a bug tracker (though I’d prefer Bugzilla or even Launchpad’s bug tracker), a nice website, standard mailing list, etc.
  • They do care about usability (keep in mind that this softphone’s UI requirements are not as simple as you might imagine; it has to be able to handle multiple calls/lines in a “callcenter” environment)
  • The project team are reactive, attentive to feedback, organized, and care about their app (that, or they were scared I would show up at their office in Montréal). You won’t get your issue fixed “first thing tomorrow morning”, but somebody will look into it eventually.

Continue reading “SFLphone translators and package maintainers needed”

SFLPhone: modern VoIP client for the Linux desktop

I was keeping an eye once in a while on the promising SFLPhone project, developped by the Savoir-faire Linux folks.
A slightly outdated screenshot I took (back in June, when I first wrote the draft for this blog post), since I’m too lazy to take new ones:
sflphone
I’m using Callcentric as an SIP provider and Twinkle was the only Linux client (well, except x-lite) that seemed to work with it. However, Twinkle has the following problems:

  • Not very open/friendly/vividly maintained. This is my subjective view. A project that has no public bugtracker, public version control repository, and an author that does not respond to emails (I sent a few of them over the last two years), is, to me, an unfriendly project.
  • QT 3. Ewww. I can bear with that, but I much prefer GTK+ applications. SFLPhone has both a GTK+ and a QT interface.
  • Does not work well with PulseAudio
  • Complex (follows the KDE approach of maximum configurability), which is not necessarily bad for something like VoIP, however
  • Weird bits of German appearing in the GUI, poor/incomplete French translation… which I can’t fix since the author never replied.
  • A huge gaping User Interface the size of a hallway
  • Terrible icons: what’s up with having smileys everywhere? They all look alike!

Continue reading “SFLPhone: modern VoIP client for the Linux desktop”

Callcentric et Handytone

Comme je m’arrachais le pelage avec freephonie que fait un peu n’importe quoi et le freephone qui ne voulait pas marcher avec Callcentric peu importe ce que je faisais (visiblement, le problème est que le freephone white envoie des paquets mal-formés), j’ai décidé de dire «au y’able! m’a pogner un vrai téléfon!» en bon acheteur compulsif que je suis.
J’ai donc trouvé un GrandStream HandyTone 496 sur eBay pour 40$. Les trucs de GrandStream sont visiblement les seuls qui sont un peu stables, abordables et à peu près garantis fonctionnels avec Callcentric. En l’occurence, cet appareil est un ATA (analog telephone adaptor). J’ai préféré ça que d’acheter un téléphone IP, comme ça je peux brancher n’importe quel téléphone conventionnel dessus. En fait, avec le HT 496 je pourrais brancher deux téléphones.
Il se trouve que le vendeur était de Montréal, j’ai pu lui tordre le bras pour qu’il réduise les frais d’expédition à 7$ (parce que 18$ pour 30 kilomètres et <½ kilogramme, ça m’énervait un peu, et le vendeur préférait me l’envoyer plutôt que j’aille le chercher en personne).
Le voici dans le feu de l’action: j’aurais bien mis un téléphone à cadran pour faire encore plus cocasse (old school telephone, meet VoIP!), mais je doute que le handytone supporte la composition par impulsions.
handytone 496
Je peux maintenant inaugurer officiellement cet emplacement de ma chambre:

Traitements d'appels avec Callcentric

Comme j’utilise désormais mon laptop comme «faux cellulaire» à l’aide d’un numéro VoIP chez Callcentric, on m’a maintenant rhâlé que j’étais pas tout le temps connecté 🙂 ceci peut arriver pour plusieurs raisons:

  • je suis pas devant le laptop
  • je n’entends pas la sonnerie (voir point précédent)
  • brancher mon casque micro prend trop de temps pendant que ça sonne (si c’est pas fait d’avance)
  • mon laptop dort (mise en veille; ben oui, sinon il ronfle, le salaud)

Continue reading “Traitements d'appels avec Callcentric”