8 comments on “What’s up with WhatsApp and WebRTC?

  1. These articles are GREAT. Fantastic info and totally appreciate the thoughtfulness / thoroughness of your analysis.

  2. I’m curious about the assertion that WhatsApp uses SDES, yet also interops with Firefox — Firefox never implemented SDES. The only way to exchange media at all with Firefox’s WebRTC implementation is using DTLS-SRTP.

  3. Just love they way they handled most visible problem of WebRTC. Also their approach to anchor media first and p2p later means they already have very big infra which they can leverage further for multi-party conf.
    Very recently I worked for one Communication giant who is changing their legacy feature server to work in this way but in legacy protocols. They otherwise use to host media all the time. Can you believe it ?
    I certainly think Whatsapp has done great job in identifying right implementation and now they should API their offering for wide adoption/customization etc.

  4. The codec priority is Opus > AMR > PCMU, but I don’t know what could prevent Opus from being used.

    How did you test silence? Maybe it was still sending noise, comfort of otherwise? Did it sound fully muted on the other side?

  5. Hi, great article!! I’ve did some tests myself with the WhatsApp call feature, but from a signalling perspective. Using the node-whatsapi project, which implements the WhatsApp protocol for NodeJS, I was able to make a trace of an incoming call from an Android WhatsApp client. See the trace here: https://gist.github.com/tvandergeer/ecc1380641801d4c7c0f (obfuscated some privacy details)

    Some conclusions/assumptions from this:
    * They use the OPUS codec
    * Several relays are tested for their latency. And then it most likely picks the one with the least latency
    * The srtp tag indicates that SRTP is being used using a pre-shared key (192 bits) => SDES?
    * Based on the presence of the p2p tag I assume that it will also attempt to connect the media directly besides using a relay

    Disclaimer: I’m a contributor to the node-whatsapi project

    • Tom,

      just noticed this. I have been pondering whether to do a MITM attack on the signaling channel to find an answer but estimated it would have taken days.

      Thank you! It’s good to know for sure.

Leave a Reply

Your email address will not be published. Required fields are marked *